- import seaborn as sns
- import matplotlib.pyplot as plt
- sns.set_theme(style="ticks", color_codes=True)
catplot() 中数据的默认表示。
数据如下:
- tips = sns.load_dataset("tips")
- tips
sns.catplot(x="day", y="total_bill", data=tips)
jitter 参数控制抖动的大小或完全禁用它:
- sns.catplot(x="day", y="total_bill", data=tips,
- jitter=0.7)
- sns.catplot(x="day", y="total_bill", data=tips,
- jitter=False)
第二种防止重叠的方法使用算法沿分类轴调整点。 它可以更好地表示观察的分布,尽管它只适用于相对较小的数据集。
这种plot被称为“beeswarm”,在 seaborn 中由 swarmplot() 绘制,或者通过在 catplot() 中设置 kind="swarm" 来绘制:
- sns.catplot(x="day", y="total_bill", data=tips,
- kind='swarm')
sns.swarmplot(x="day", y="total_bill", data=tips)
(catplot只支持hue,不支持size和style)
- sns.catplot(x="day", y="total_bill", data=tips,kind='swarm',
- hue='sex')
交换变量的赋值
- sns.catplot(x="total_bill", y="day", data=tips,kind='swarm',
- hue='sex')
- sns.catplot(x="day", y="total_bill", data=tips,kind='swarm',hue='sex',
- order=['Thur','Sun','Fri','Sat'])
- sns.catplot(x="total_bill", y="day", data=tips,
- kind='box')
- sns.catplot(x="total_bill", y="day", data=tips,kind='box',
- hue='sex')
和Box很像,但是提供了更多的信息
- diamonds = sns.load_dataset("diamonds")
- sns.catplot(x="color", y="price", kind="boxen",
- data=diamonds.sort_values("color"))
- sns.catplot(x="total_bill", y="day",data=tips,
- kind="violin")
- sns.catplot(x="total_bill", y="day",kind="violin", data=tips,
- hue='sex')
如果hue是二分类的话,可以加split=True,来更好地利用空间
- sns.catplot(x="total_bill", y="day",kind="violin", data=tips,
- hue='sex',split=True)
- g=sns.catplot(x="total_bill", y="day",kind="violin", data=tips,split=True)
- sns.swarmplot(x="total_bill", y="day", color='k',size=3,data=tips,
- ax=g.ax)
- titanic = sns.load_dataset("titanic")
- titanic
当每个类别中有多个观察值时,将计算估计值周围的置信区间(柱状图的值是平均值)
sns.catplot(x="sex", y="survived", kind="bar", data=titanic)
- sns.catplot(x="sex", y="survived", kind="bar", data=titanic,
- hue="class")
- sns.catplot(x="sex", kind="count", data=titanic,
- hue="class")
sns.countplot(x="sex", data=titanic, hue="class")
和柱状图想要说明的内容是类似的,不过这里用点和线表示了均值和置信区间
- sns.catplot(x="sex", y="survived", hue="class", data=titanic,
- kind="point")
设置不同hue中点的形状
- sns.catplot(x="sex", y="survived", hue="class", data=titanic, kind="point",
- markers=['*','+','o'])
- sns.catplot(x="sex", y="survived", hue="class", data=titanic, kind="point",
- linestyles=['-','--',':'])