+-

我有一个“主”熊猫数据框,其中包含多个术语的“极性”值的时间序列.我想使用其中的4个,因此我提取了4个单独的数据帧,其中包含时间序列(所有术语的时间序列相同,但极性值不同.)
我使用下面的代码将它们绘制在4个独立的matplotlib图形中
fig, axes = plt.subplots(nrows=2, ncols=2)
polarity_godzilla.plot(ax=axes[0,0]); axes[0,0].set_title('Godzilla')
polarity_henry_kissinger.plot(ax=axes[0,1]); axes[0,1].set_title('Henry Kissinger')
polarity_bmwi.plot(ax=axes[1,0]); axes[1,0].set_title('BMWi')
polarity_duran_duran.plot(ax=axes[1,1]); axes[1,1].set_title('Duran Duran')
现在,我想将它们全部绘制在同一张图中,因此我对每个图的大小都有一个概念,因为matplotlib的自动缩放比例可能仅通过查看这些图就可对幅度产生错误的印象.
两个问题:
1)有没有办法在绘制时设置Y轴的最小值和最大值?
2)我不是matplotlib的专家,所以我不确定如何使用不同的颜色,标记,标签等在同一张图中绘制4个变量.我尝试使用nrows = 1,ncols = 1,但无法绘制任何内容.
谢谢
最佳答案
axes [i,j] .set_ylim([min,max],auto = False)将在第i,jth个图中设置图的y极限. auto = False使它不会破坏您的设置.
您可以通过调用plt.hold(True),绘制一堆图,然后调用plt.show()或plt.savefig(filename)在同一图形上绘制多条线.
您可以将颜色代码作为第三个位置参数传递到plt.plot()中.语法有点拜占庭式(继承自MATLAB).它记录在matplotlib.pyplot.plot文档中.您可以将此参数作为(例如)style =’k–‘传递给DataFrame.plot.
对于您的情况,我会尝试
fig, ax = plt.axes()
plt.hold(True)
polarity_godzilla.plot(ax=ax, style="k-o", label="Godzilla")
polarity_henry_kissinger(ax=ax, style="b-*", label="Kissinger")
#etc.
plt.legend() #to draw a legend with the labels you provided
plt.show() #or plt.savefig(filename)
点击查看更多相关文章
转载注明原文:python-在matplotlib中自动缩放,在同一张图表中绘制不同的时间序列 - 乐贴网