该函数是用来绘制箱形图和核密度估计组合图。 小提琴形图(violin plot)的作用与盒形图(box plot)和whidker plot的作用类似,它显示了一个或多个分类变量的几个级别的定量数据的分布,我们可以通过观察来比较这些分布。与盒形图不同,因为盒形图的所有绘图组件都对应于实际数据点,小提琴形图具有底层分布的核密度估计。
案例代码已上传:Github地址
import seaborn as sns sns.set(style="whitegrid") tips = sns.load_dataset("tips") tips[:5] import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例1: 绘制一个水平的小提琴形图 """ sns.violinplot(x=tips['total_bill']) plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例2: 绘制一个按分类变量分组的垂直小提琴图 """ sns.violinplot(x="day", y="total_bill", data=tips) plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例3: 绘制 两类变量进行分组 绘制垂直方向的小提琴图 """ sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted") plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例4: 绘制分割小提琴以比较跨色调变量 """ sns.violinplot(x="day", y="total_bill", hue="smoker", data=tips, palette="muted", split=True) plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例5: 通过设置order来明确指出挑剔亲的顺序 """ sns.violinplot(x="time", y="tip", data=tips,order=["Dinner", "Lunch"]) plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例6: 通过设置scale='count',按每个箱子中的观察次数来缩放小提琴宽度 """ sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2", split=True,scale="count") plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例7: 将四分位数绘制为水平线 """ sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2", split=True, scale="count", inner="quartile") plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例8: 使用窄的宽度来减少平滑量 """ sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2", split=True, scale="count", inner="stick", scale_hue=False, bw=.2) plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 planets = sns.load_dataset("planets") """ 案例9: 将小提琴图绘制成水平方向上 """ sns.violinplot(x="orbital_period", y="method", data=planets[planets.orbital_period < 1000], scale="width", palette="Set3") plt.show() import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 planets = sns.load_dataset("planets") """ 案例10: 使用catplot()violinplot()的统计效果,必须设置kind="violin" 当要对其他分类变量进行分组时,使用catplot()比直接使用FacetGrid更加安全 """ sns.catplot(x="sex", y="total_bill", hue="smoker", col="time", data=tips, kind="violin", split=True, height=4, aspect=.7);上述案例代码已上传:Github地址 Github地址https://github.com/Vambooo/SeabornCN
更多技术干货在公众号:数据分析与可视化学研社