Seaborn / plotly多个y轴

问题描述 投票:2回答:2

我想使用类似于matlotlib的此示例的pandas数据框,在seaborn中获得具有两个以上不同y轴的图:https://matplotlib.org/examples/axes_grid/demo_parasite_axes2.html

因为它将用于函数中,所以我希望灵活选择要绘制的熊猫数据框的数量和列。

[不幸的是,Seaborn似乎只移动了最后增加的音阶。这是我要处理的Seaborn示例数据集:

import matplotlib.colors as mcolors
import matplotlib.pyplot as plt
import seaborn as sns

df=sns.load_dataset("mpg")
df=df.loc[df['model_year']<78]

show=['mpg','displacement','acceleration']

sns.set(rc={'figure.figsize':(11.7,8.27)})
sns.scatterplot('weight',show[0],data=df.reset_index(),style='model_year') 
del show[0]
k=1
off=0
for i in show:
    a = plt.twinx()
    a=sns.scatterplot('weight',i,data=df.reset_index(),ax=a, color=list(mcolors.TABLEAU_COLORS)[k],legend=False,style='model_year')
    a.spines['right'].set_position(('outward', off))
    a.yaxis.label.set_color(list(mcolors.TABLEAU_COLORS)[k])
    k+=1
    off+=60

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9PSjU0Qy5wbmcifQ==” alt =“在此处输入图像描述”>

我想创建一个可以灵活绘制不同列的函数。到目前为止,在我看来,这似乎很复杂(没有办法做一个循环)。如果有一个好的方法,我也将继续进行。

python pandas plot plotly seaborn
2个回答
1
投票

[Plotly中实际上有一个好方法,您可以看到下面图片的代码示例,类似于this section of the docs中的matplotlib示例。


0
投票

我现在使用plotly来实现。

© www.soinside.com 2019 - 2024. All rights reserved.