您的问题是您显示它然后将其保存在GUI窗口中.您必须从命令savefig中保存图像,并在其中定义dpi.
像这样的东西:
import matplotlib.pyplot as plt
#First normal figure
fig, axarr = plt.subplots(2,2, figsize=(6,6))
for i,ax in enumerate(axarr.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)
plt.tight_layout()
plt.savefig('myfigure_100.png', dpi=100)
plt.savefig('myfigure_200.png', dpi=200)
如果你想显示它,你可以在scrpit的末尾添加plt.show()
编辑
图形大小的dpi与字体大小的关系可以在以下示例中显示:
import matplotlib.pyplot as plt
#First normal figure
fig1, axarr1 = plt.subplots(2,2, figsize=(6,6), dpi=100)
for i,ax in enumerate(axarr1.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=10)
ax.set_xlabel('x'+str(i), fontsize=10)
ax.set_ylabel('y'+str(i), fontsize=10)
plt.tight_layout()
fig2, axarr2 = plt.subplots(2,2, figsize=(12,12), dpi=50)
for i,ax in enumerate(axarr2.flatten()):
ax.plot(range(10))
ax.set_title('title'+str(i), fontsize=20)
ax.set_xlabel('x'+str(i), fontsize=20)
ax.set_ylabel('y'+str(i), fontsize=20)
plt.tight_layout()
plt.show()