为了完全或多或少地保存我在屏幕上看到的内容,似乎我无法理解在Python MatplotLib
中应该做的事情。
这是我准备的测试代码:
import matplotlib.pyplot as plt
import numpy as np
def main():
values = [712, 806, 858, 990, 1158, 1126, 166]
xlabels = np.arange(2013, 2020)
ylabels = ylabels = np.arange(400,1300,400)
index = np.arange(len(xlabels))
fig = plt.figure(1, figsize=(12,16), dpi=100)
plt.bar(index, values, color='grey')
plt.xticks(index, xlabels, fontsize=30)
plt.yticks(ylabels, ylabels, fontsize=30)
plt.ylim((0, 1400))
plt.title('Title', fontsize=40)
plt.savefig('../figs/test.png')
plt.show()
# -----------------------------------------
if __name__ == "__main__":
main()
这是savefig
保存的图像:
如果我使用fig.savefig(...)
代替plt.savefig(...)
,则没有任何变化。
我在做什么错了?
答案 0 :(得分:1)
假设您的显示器在垂直方向上的分辨率为1080像素。也许您有一个任务栏,并且matplotlib图窗口有一个标题和导航栏。因此,总共可能有950像素可显示您的身材。这意味着以英寸为单位的图形高度不应大于950 / dpi
。就您而言
fig = plt.figure(figsize=(12, 950./100), dpi=100)
相反,如果您真的想显示并保存100 dpi的16英寸图形,则需要向图形窗口添加一个滚动条,类似于Scrollbar on Matplotlib showing page。
答案 1 :(得分:0)
您是否尝试过这样调整大小:
如果您已经创建了图形,则可以快速执行以下操作:
fig.set_size_inches(12,16)
fig.savefig('../figs/test.png', dpi=100)
要将尺寸更改传播到现有的GUI窗口,请添加forward = True
fig.set_size_inches(12,16, forward=True)
从本主题开始: How do you change the size of figures drawn with matplotlib?