matplotlib 对称图_Python-使用plotnine制作简单的箱型图和小提琴图

本文介绍了如何使用matplotlib和plotnine库在Python中创建箱型图和小提琴图。箱型图展示了数据的四分位数、中位数和异常值,有助于理解数据分布。小提琴图则结合了箱型图和密度图的特点,适用于展示大量数据的分布情况。文中提供在jupyter notebook中实现这两种图表的代码示例。
摘要由CSDN通过智能技术生成

60f18c34f7536edf1c73ccfcc24059e3.png

箱型图(box plot)也被称为箱须图(box-whisker plot)、箱线图、盒图,它能显示出一组数据的最大值、最小值、中位数及上下四位数,能反映出一组或多组连续型定量数据分布的中心位置和散布分布,因其形状如箱子而得名。

6b04e2585a30b106c51940a7576386a2.png

从箱型图中可以得出:平均值、中位数和上下四分位数;异常值;数据对称情况,数据分组的紧密程度;数据分布是否出现偏斜。

代码如下(我是用jupyter notebook做的):

import pandas as pd
from plotnine import *

#先用pandas读取文件
df = pd.read_csv('Distribution_Data.csv')

#一开始作图的时候发现横坐标并没有按照一定的顺序排列,这两行代码可以帮助我们排列,也可以不加这两行
#代码,看看是什么效果
category = pd.api.types.CategoricalDtype(categories= ["n", "s", "k", "mm"],ordered=True)
df['class']=df['class'].astype(category)

#ggplot()是底层绘图函数,为必须元素;geom_boxplot()是绘制的几何图形,意思是绘制一个箱型图;
#geom_jitter()是绘制抖动散点图的,代码里已经注释掉了,可以把注释消了试试效果;
#scale_fill_hue()是设置色彩变化参数的,可以改一改参数试试效果;
#theme_matplotlib()可以改变背景,把这个注释之后会发现背景改变了,比如网格线或者灰色背景什么的;
#theme()调整主题,这个没有去尝试一些变化
box_plot=(ggplot(df,aes(x='class',y="value",fill="class"))
+geom_boxplot(show_legend=False)
#+geom_jitter(fill='black',shape='.',width=0.3,size=3,stroke=0.1,show_legend=False)
+scale_fill_hue(s = 0.90, l = 0.65, h=0.0417,color_space='husl')
+theme_matplotlib()
+theme(aspect_ratio =1.05,
       dpi=100,
       figure_size=(4,4)))


box_plot

a0f631554fd2c2adfd945d72165a641d.png
不加抖动散点的箱型图

87470fed65d738b63817dadd1101e140.png
加了抖动散点的箱型图

小提琴图(vilion plot)用于显示数据分布及其概率密度,结合了箱型图和密度图的特征,主要用来显示数据的分布情况。在样本量较大的时候更为适用。

代码如下(同样jupyter notebook):

import pandas as pd
from plotnine import *


df = pd.read_csv('Distribution_Data.csv')
category = pd.api.types.CategoricalDtype(categories= ["n", "s", "k", "mm"],ordered=True)
df['class']=df['class'].astype(category)

#geom_violin()意思是绘制小提琴图
violin_plot = (ggplot(df,aes(x='class',y='value',fill='class'))
                      +geom_violin(show_legend=False)
                      +geom_boxplot(fill='white',width=0.1,show_legend=False)
                      #+geom_jitter(fill='black',shape='.',width=0.3,size=3,stroke=0.1,show_legend=False)
                      +scale_fill_hue(s=0.90,l=0.65,h=0.0417,color_space='husl')
                      +theme_matplotlib())
violin_plot

ff060cdc5d4b6a0694e2719ffb474784.png
未加抖动散点的小提琴图

790047a825b72605bcdbf1c1f51ff80a.png
加了抖动散点的小提琴图

刚刚开始学,里面有很多不懂得地方,自己写给自己看的。

要是别的朋友看的话欢迎大家讨论,一起进步,如果需要练习数据的话可以给我说。

代码和数据参考的《Python数据可视化之美:专业图标绘制指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值