我厌倦了在excel中手动创建图形,因此,我正在尝试使用Python自动化该过程以将.csv数据压缩为可行的形式,并使用matplotlib绘制结果.
使用matplotlib并生成它们没有问题,但我无法解决的是如何设置输出的宽高比/分辨率.
具体来说,我正在尝试生成散点图和堆积面积图.我尝试过的所有内容似乎都会产生以下一种或多种情况:
如果有人有一些工作实例展示如何实现这一结果,我将非常感激!
您可以使用以下方法控制宽高比ax.set_aspect:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax=fig.add_subplot(1,1,1)
ax.set_aspect(0.3)
x,y=np.random.random((2,100))
plt.scatter(x,y)
Run Code Online (Sandbox Code Playgroud)
设置宽高比的另一种方法(jterrace已经提到)是使用figsize参数plt.figure:例如fig = plt.figure(figsize=(3,1)).然而,这两种方法略有不同:图形可以包含许多轴.figsize控制整个图形set_aspect的纵横比,同时控制特定轴的纵横比.
接下来,您可以使用以下方法修剪绘图周围未使用的空间bbox_inches='tight':
plt.savefig('/tmp/test.png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)

如果由于matplotlib自动选择x-range和y-range而想要消除多余的空白空间,可以使用ax.set_xlim和手动设置它们ax.set_ylim:
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
Run Code Online (Sandbox Code Playgroud)
