Python 如何使用图例和辅助y轴在同一绘图上绘制两只熊猫的时间序列?
我想用相同的x轴和次y轴在同一个图上绘制两个时间序列。我不知怎么做到了这一点,但两个图例重叠,无法为x轴和辅助y轴添加标签。我尝试将两个图例放在左上角和右上角,但仍然不起作用 代码:Python 如何使用图例和辅助y轴在同一绘图上绘制两只熊猫的时间序列?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我想用相同的x轴和次y轴在同一个图上绘制两个时间序列。我不知怎么做到了这一点,但两个图例重叠,无法为x轴和辅助y轴添加标签。我尝试将两个图例放在左上角和右上角,但仍然不起作用 代码: 提前感谢以下解决方案适合我。第一个将两条线放在一个图例中,第二个将两条线拆分为两个图例,类似于上面尝试的内容 这是我的数据框 ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) df = pd.D
提前感谢以下解决方案适合我。第一个将两条线放在一个图例中,第二个将两条线拆分为两个图例,类似于上面尝试的内容 这是我的数据框
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))
一个图例解决方案,归功于StackOverflow post
plt.figure(figsize=(12,5))
plt.xlabel('Number of requests every 10 minutes')
ax1 = df.A.plot(color='blue', grid=True, label='Count')
ax2 = df.B.plot(color='red', grid=True, secondary_y=True, label='Sum')
h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
plt.legend(h1+h2, l1+l2, loc=2)
plt.show()
拆分图例解决方案
plt.figure(figsize=(12,5))
plt.xlabel('Number of requests every 10 minutes')
ax1 = df.A.plot(color='blue', grid=True, label='Count')
ax2 = df.B.plot(color='red', grid=True, secondary_y=True, label='Sum')
ax1.legend(loc=1)
ax2.legend(loc=2)
plt.show()
它可以简单到:
df.loc[:,['A','B']].plot(secondary_y=['B'], mark_right=False, figsize = (20,5), grid=True)
mark_right=False表示“B”标签位于左轴上
df.loc[:,['A','B']].plot(secondary_y=['B'], mark_right=False, figsize = (20,5), grid=True)