繁体   English   中英

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

[英]How to change all text sizes in figure when using python matplotlib?

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

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

我该怎么做? 上面只是伪代码,但是其想法是更改x和y标签,图例,标题以及所有内容。

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

编辑2 :我测试了font.size = 22方法。 如果您在例如legend()之后运行它,它会有一些奇怪的行为。 文本垂直空格不会更新。 因此,它应该类似于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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM