有没有办法使用seaborn绘制此图?

时间:2020-06-07 08:45:37

标签: python matplotlib data-visualization seaborn

我正在尝试使用seaborn来可视化此方法,但无法找到方法。

我的数据框如下:

sns.barplot(x='Vmax',y='Type',hue='Km',data=df,orient='h')

到目前为止我已经尝试过:

WHERE

1我得到的结果:

2我想要的东西(类似这样的东西): enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

我认为您需要pandas中的melt函数。这样,您就可以获取一个变量,该变量指示要作为hue的{​​{1}}参数传递的测量类型(Km或Vmax)(您可以查看此paper,以了解有关此内容的更多信息“整洁”数据表示的类型):

seaborn

输出:

d

但是,这两种测量的规模有很大不同,因此您也可以考虑将它们绘制在两个子图上:

df = pd.DataFrame({"Type": ["W1H", "W1R", "W1X"], "Vmax": [1.1031, 1.9014, 1.0447],
                  "Km": [34.976545, 200.745433, 20.796225]})

molten = pd.melt(df, id_vars="Type")

# >>> molten
#   Type variable       value
# 0  W1H     Vmax    1.103100
# 1  W1R     Vmax    1.901400
# 2  W1X     Vmax    1.044700
# 3  W1H       Km   34.976545
# 4  W1R       Km  200.745433
# 5  W1X       Km   20.796225

f, ax = plt.subplots()
sbn.barplot(y="Type", x="value", hue="variable", orient="h", data=molten)

输出: enter image description here