Python 使用辅助Y轴绘制带有Pandas数据框的条形图和折线图,并将图例添加到一起

Python 使用辅助Y轴绘制带有Pandas数据框的条形图和折线图,并将图例添加到一起,python,pandas,matplotlib,Python,Pandas,Matplotlib,我创建了一个绘图,其中我使用Pandas数据框在主Y轴上有一个条形图,在次Y轴上有一个折线图。X轴很常见,所以使用twinx方法 这是我使用的代码 ax = df.plot(x=['TIME'],y =['Column A'],kind='bar',use_index=True,color='g',legend=True) ax.set_ylabel("Label A") ax2 = ax.twinx() ax2.plot(df[['Column B']].values,linestyle=

我创建了一个绘图,其中我使用Pandas数据框在主Y轴上有一个条形图,在次Y轴上有一个折线图。X轴很常见,所以使用twinx方法

这是我使用的代码

ax = df.plot(x=['TIME'],y =['Column A'],kind='bar',use_index=True,color='g',legend=True)
ax.set_ylabel("Label A")

ax2 = ax.twinx()

ax2.plot(df[['Column B']].values,linestyle='-', marker='o', linewidth=2.0,color ='b')
ax2.set_ylabel("Label B")
这将创建所需的图表,但仅显示主图例。我尝试将ax2.0打印线更改为

ax2.plot(df[['Column B']].values,linestyle='-', marker='o', linewidth=2.0,color ='b',legend=True)
但这给了我一个错误“TypeError:没有行属性”legend“,你们能不能研究一下如何显示属于这两个属性的组合图例

非常感谢。
MO Chen

您可以使用
图例
方法处理每个轴的图例,例如

ax.legend('A', loc=1)

# ....

ax2.legend('B', loc=2)

以下是
matplotlib
中的图例指南:

Joe感谢您的回复,它可以工作,但是我必须手动传递图例,我可以使它自动获得与标签相同的名称吗?…不是通过
matplotlib
API,但是您已经手动输入了列名,所以我看不出问题,只需将正在绘制的列定义为变量,然后将其传递给这两个变量,例如,
col='columnb';ax.绘图(df[col].值,…);ax.legend(col…)
您好,当我保存绘图时,尽管我为图例选择了不同的位置,但它们会彼此堆叠在一起。但是MATPLOTLIB plot显示了正确的位置。如何保存它们?也许你应该问一个新问题,因为这是离题的。