Python 熊猫散点图:如何在次y轴上绘制数据?
我想把两个散点图放在同一个图形上,其中x轴是共享的,但y轴是不同的。但是我不知道怎么去那里。要创建我的第一个散点图,我正在执行以下操作:Python 熊猫散点图:如何在次y轴上绘制数据?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我想把两个散点图放在同一个图形上,其中x轴是共享的,但y轴是不同的。但是我不知道怎么去那里。要创建我的第一个散点图,我正在执行以下操作: ax=df.plot(kind='scatter', x='vf', y='hf_ratio', xlim=[2e-06,6e-06], ylim=[1,10], color='DarkBlue', s=40, label='a') ax.ticklabel_format(axis='x', style='sci', scilimits=(0
ax=df.plot(kind='scatter', x='vf', y='hf_ratio', xlim=[2e-06,6e-06], ylim=[1,10],
color='DarkBlue', s=40, label='a')
ax.ticklabel_format(axis='x', style='sci', scilimits=(0,0))
现在我想在右侧y轴上添加第二个。Pandas文档提供了将次轴添加到线图(secondary_y=True
)的信息,因此我尝试了这个方法,但似乎不起作用:
df.plot(kind='scatter', x='vf', y='hfall', secondary_y=True,
color='Red', s=40, label='hfall', ax=ax);
它似乎忽略了secondary_y=True
命令,只在原始y轴上绘图,这不是很有用。只是为了在我的伤口上撒更多的盐,它还去除了诱人的白色网格线
如果有人能帮上忙,我们将不胜感激。这似乎是熊猫代码的一个问题(bug?)。这已经在他们的GitHub页面上进行了报道。从他们给出的解释来看,发生的情况是,secondary_y
关键字仅适用于直线图,而不适用于您在这里尝试的散点图
链接中建议的解决方法是使用线图,但将样式更改为点(不确定这是否足以满足您的需要)。在您的情况下,这将类似于:
ax=df.plot(kind='line', x='vf', y='hf_ratio', xlim=[2e-06,6e-06],
ylim=[1,10], color='DarkBlue', style='.', markersize=5, label='a')
df.plot(kind='line', x='vf', y='hfall', secondary_y=True,
color='Red', style='.', markersize=5, label='hfall', ax=ax);
非常感谢您的回答,巴勃罗-您的解决方案对我非常有效:)