Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫散点图:如何在次y轴上绘制数据?_Python_Pandas_Matplotlib - Fatal编程技术网

Python 熊猫散点图:如何在次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

我想把两个散点图放在同一个图形上,其中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,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);

非常感谢您的回答,巴勃罗-您的解决方案对我非常有效:)