如何合并两个具有共享 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
我有一个数据集
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