matplotlib 如何更改图中的所有文本大小

zqdjd7g9  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(122)

很久以前,我在matplotlib中看到一个函数,它可以将所有文本大小更改为相同。现在我在任何地方都找不到它。它是一个简单的一个(或两个)liner:

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

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

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

py49o6xq

py49o6xq1#

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

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

编辑(完整性):像素的大小(屏幕上)由dpi设置控制,该设置可通过Figure.set_dpi(瓦尔)设置。
编辑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

还要注意,由于抗锯齿,可能会对像素高度产生影响。

相关问题