在python线图中添加二次y轴

在python线图中添加二次y轴,python,matplotlib,Python,Matplotlib,我想添加辅助y轴。我的数据是CSV格式的,有三列日期、lscc和cc。我想将LSCC添加为第一个y轴,将CC添加为第二个y轴。到目前为止,我已经做到了这一点 df=pd.read_csv("E29Lsccvalue.csv", index_col='Date' ) plt.ylabel("") plt.xlabel("Low level Similarity Class Cohesion (LSCC) Evolution") df.plot(kind="line", marker='o',leg

我想添加辅助y轴。我的数据是CSV格式的,有三列日期、lscc和cc。我想将LSCC添加为第一个y轴,将CC添加为第二个y轴。到目前为止,我已经做到了这一点

df=pd.read_csv("E29Lsccvalue.csv", index_col='Date' )
plt.ylabel("")
plt.xlabel("Low level Similarity Class Cohesion (LSCC) Evolution")
df.plot(kind="line", marker='o',legend=None)
plt.xticks(rotation=90)
plt.show()

谢谢

虽然没有提供可复制的日期,但我想您可以通过这样做达到预期的结果:

ax = df.plot(secondary_y='CC')
最终添加所需的所有
ax
定制

编辑:虚线自定义

假设您需要在x轴上的某个位置(在本例中,在pandas索引的位置2处)绘制一条垂直虚线,请使用和
:'
作为线型(点)


虽然没有提供可复制的日期,但我想您可以通过以下方式实现预期结果:

ax = df.plot(secondary_y='CC')
最终添加所需的所有
ax
定制

编辑:虚线自定义

假设您需要在x轴上的某个位置(在本例中,在pandas索引的位置2处)绘制一条垂直虚线,请使用和
:'
作为线型(点)


在matplotlib中,当我想利用我创建的现有X轴,但在顶部用不同的Y轴打印更多数据时,我使用了
twinx()
。在使用
df
作为第一个绘图对象的情况下:

axCC = df.twinx() # second axis sharing the same X axis of the original
然后,您可以通过以下调用包括对此轴引用的绘图、标签和其他参数:

axCC.set_ylabel("ExampleLabel",color="tab:red")
axCC.plot(xData,yData,color="blue")
等等等等


当我想利用我创建的现有X轴,但在顶部用不同的Y轴绘制更多数据时,我使用的matplotlib中显示了一个功能完整且更详细的示例。在使用
df
作为第一个绘图对象的情况下:

axCC = df.twinx() # second axis sharing the same X axis of the original
然后,您可以通过以下调用包括对此轴引用的绘图、标签和其他参数:

axCC.set_ylabel("ExampleLabel",color="tab:red")
axCC.plot(xData,yData,color="blue")
等等等等


图中显示了一个更详细的完整功能示例

尝试阅读重复问题中的答案。尝试阅读重复问题中的答案。嘿,非常感谢。还有一个问题,我如何在特定日期添加虚线?我编辑了我的回答。谢谢,我尝试了虚线的解决方案,但问题是我的x轴是日期,axvline不接受日期值axvline接受位置,而不是值!但它不接受我指定的职位。我像这样导入matplotlib.pyplot作为plt df=pd.read_csv(“E29Lsccvalue.csv”)axes1=df.plot(kind=“line”,marker=“o”,legend=None,secondary_y='CC',figsize=(6,6),rot=90)plt.xlabel(“Date”)plt.ylabel(“低级相似类内聚(LSCC)”)axes1.set_ylabel(“类内聚(CC)”)line=df.iloc[20][0]打印(line)axes1.axvline(line,linestyle=':',color='r')plt.show()非常感谢。还有一个问题,我如何在特定日期添加虚线?我编辑了我的回答。谢谢,我尝试了虚线的解决方案,但问题是我的x轴是日期,axvline不接受日期值axvline接受位置,而不是值!但它不接受我指定的职位。我像这样导入matplotlib.pyplot作为plt df=pd.read_csv(“E29Lsccvalue.csv”)axes1=df.plot(kind=“line”,marker=“o”,legend=None,secondary_y='CC',figsize=(6,6),rot=90)plt.xlabel(“Date”)plt.ylabel(“低级相似类内聚(LSCC)”)axes1.set_ylabel(“类内聚(CC)”)line=df.iloc[20][0]打印(line)axes1.axvline(line,linestyle=':',color='r')plt.show()