我有一个'主人'具有时间序列极性的熊猫数据帧'几个术语的值。我想与其中的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但是不能#t; t绘制任何东西。
谢谢
答案 0 :(得分:1)
axes[i,j].set_ylim([min,max], auto=False)
将在i,j
图中设置图的y限制。 auto=False
阻止其破坏您的设置。
您可以通过调用plt.hold(True)
,绘制一堆图表,然后调用plt.show()
或plt.savefig(filename)
来在同一图表上绘制多条线。
您可以将颜色代码作为第三个位置参数传递给plt.plot()
。语法有点拜占庭(它继承自MATLAB);它记录在matplotlib.pyplot.plot文档中。您可以将此参数传递给DataFrame.plot
(例如)style='k--'
。
对于你的情况,我会尝试
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)
答案 1 :(得分:1)
您可以循环访问AxesSubplot
个对象,并通过autoscale
参数调用axis
:
for ax in axes:
ax.autoscale(axis='y')