python - 使用python matplotlib时如何更改图中所有文本的大小?

标签 python text resize matplotlib figure

我很久以前在 matplotlib 中看到一个将所有文本大小更改为相同的函数。现在我到处都找不到。这是一个简单的一个(或两个)衬里,如:

for item in pylab.gca(): item.getLabel().setSize(10)

我应该怎么做?上面只是伪代码,但想法是改变 x 和 y 标签、图例、标题,一切。

编辑:...在一个图形(对象)内。我希望文本大小取决于图形宽度。全局 font.size 改变了所有数字?我认为它不能动态应用(设置只在创建图形之前读取)?

编辑 2:我测试了 font.size = 22 方法。如果你在例如之后运行它,它会有一些奇怪的行为。传奇()。文本垂直空间不会更新。所以,它应该类似于 getText().setTextSize()。

最佳答案

您可以更改 figsize(字体大小保持不变),而不是更改字体大小:

# figsize = (8,6)
figsize = (4,3) # same ratio, bigger text
fig,(ax) = plt.subplots(1, 1, figsize=figsize)

编辑(为了完整性):像素的大小(在屏幕上)由可设置的 dpi 设置控制,即通过 Figure.set_dpi( val )。

编辑 2:我不知道您如何(以及是否)可以控制确切的像素高度。不过我做了一些测试:

#! /usr/bin/env python

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)

matplotlib.rcParams.update({'font.size': 10})
fig,(ax) = plt.subplots(1, 1, figsize=(10,10))
plt.plot(x,y)
plt.savefig('test.png', dpi=300)

# font-size, figsize, dpi => pixel-height
# 10, 20x20, 100 => 10
# 10, 20x20, 200 => 21
# 10, 10x10, 100 => 10
# 10, 10x10, 200 => 21
# 10, 10x10, 300 => 34

另请注意,抗锯齿可能会对像素高度产生影响。

关于python - 使用python matplotlib时如何更改图中所有文本的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10895965/

相关文章:

java - 缩放纹理和调整纹理大小之间的差异

python - "Segmentation Fault"被第三方包抛出。如何防止它显示在控制台上?

python - Django:如何访问和显示一对多关系中单个 "child"的详细信息?

linux - 在 linux 目录的所有文件中搜索和替换文本

python - Pandas:同时导入日期和 12 小时时间

c++ - 从代码创建的 QPushButton 的最小尺寸/宽度

python - 将 IBM_DB 与 Pandas 结合使用

python - 弃用警告 : use options instead of chrome_options error using ChromeDriver and Chrome through Selenium on Windows 10 system

c++ - 如何在 Windows 控制台应用程序中更改文本或背景颜色

java - 将 float 组转换为图像