如何合并两个具有共享 x 轴的 Seaborn catplot

How To Combine Two Seaborn catplot s with shared x-axis

我有一个数据集

Categories Model_1 Model_2
A 0.49 0.13
B 0.52 0.13
C 0.46 0.03

我想用相同的 x 轴=类别和 y1=Model_1 和 y2=Model_2 绘制一个图形,我想要这样的结果:

我使用这行代码,但他给了我 2 个不同数字的图

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.read_csv('Dataset.csv')

sns.catplot(x="Categories", y="Model_1",data=df,kind="point",markers=["o"],linestyles=["-"])
sns.catplot(x="Categories", y="Models_2",data=df,kind="point",markers=["^"],linestyles=["--"],ax = axs[1])

通常它有助于将数据重塑为长格式以供绘图。您可以使用 pd.melt 执行此操作。除非每个 category/model.

有多个值,否则您不会像示例图像那样获得浅色阴影的置信区间
import seaborn as sns
import pandas as pd
df = pd.DataFrame({
    'Categories': ['A', 'B', 'C'],
    'Model_1': [0.49, 0.52, 0.46],
    'Model_2': [0.13, 0.13, 0.03]})

df = df.melt(id_vars='Categories', var_name='Model')
print(df)
sns.catplot(data=df,
            x='Categories',
            y='value',
            hue='Model',
            kind='point',
            markers=['o','^'],
            linestyles=['-','--'])

输出

  Categories    Model  value
0          A  Model_1   0.49
1          B  Model_1   0.52
2          C  Model_1   0.46
3          A  Model_2   0.13
4          B  Model_2   0.13
5          C  Model_2   0.03