gpt4 book ai didi

python - plt.show() 和 fig.savefig() 的不同绘图大小

转载 作者:行者123 更新时间:2023-12-04 17:51:03 25 4
gpt4 key购买 nike

我必须创建一些要整合到科学文档中的图。由于篇幅限制,图的大小以及字体大小都相当小。出于调试/方便的原因,在使用 fig 将其存储为 PDF 文件之前,最好使用具有更大尺寸的绘图和字体的 plt.show() 以交互方式显示绘图。 savefig(...) 尺寸更小。

我实现了在显示之前设置不同的绘图大小。但是,我无法更新字体大小。知道这怎么可能吗?

#!/usr/bin/env python

import matplotlib as mpl
from pylab import *

params = {
'text.usetex': True,
'font.size': 6,
}
mpl.rcParams.update(params)

fig = plt.figure(figsize=(3,2))
ax = fig.add_subplot(111)

x = [1, 2, 3]
y = [2, 2, 2]

ax.plot(x,y, label='label')

plt.tight_layout()
fig.savefig('plot.pdf')

fig.set_size_inches(10, 8, forward=True)
params = {'font.size': 20}
mpl.rcParams.update(params)
plt.show()

我使用的是 Matplotlib 2.0.2,但也尝试过 1.5.3。

最佳答案

切题:你不应该 from pylab import *,那会用各种不必要的东西弄乱你的命名空间:

>>> len(globals())
6
>>> from pylab import *
>>> len(globals())
988

如您所见,我认为设置任何 rc 参数都不会影响现有 图。您可能不得不亲自动手,尽管只是一点点:您的 Axes 只有少数子项需要修改:

import matplotlib as mpl
import matplotlib.pyplot as plt # <-- all you need here

params = {
'text.usetex': True,
'font.size': 6,
}
mpl.rcParams.update(params)

fig = plt.figure(figsize=(3,2))
ax = fig.add_subplot(111)

x = [1, 2, 3]
y = [2, 2, 2]

ax.plot(x,y, label='label')

plt.tight_layout()
fig.savefig('plot.pdf')

fig.set_size_inches(10, 8, forward=True)
# v--- change title and axeslabel font sizes manually
for item in ([ax.title, ax.xaxis.label, ax.yaxis.label] +
ax.get_xticklabels() + ax.get_yticklabels()):
item.set_fontsize(20)
plt.show()

保存(左)和显示(右)版本:

saved version shown version

可以说,关闭保存的绘图、修改 rcParams 并重绘要显示 的版本可能更优雅(或另一种困惑) >.

关于python - plt.show() 和 fig.savefig() 的不同绘图大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com