matplotlib绘制箱形图之基本配置——万能模板案例(一)

简介: matplotlib绘制箱形图之基本配置——万能模板案例

线形图介绍

箱形图(Box-plot)盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。

它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。


箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。


image.png


参数说明

boxplot(
x, notch=None, sym=None, vert=None, whis=None,
positions=None, widths=None, patch_artist=None,
bootstrap=None, usermedians=None, conf_intervals=None,
meanline=None, showmeans=None, showcaps=None, showbox=None,
showfliers=None, boxprops=None, labels=None, flierprops=None,
medianprops=None, meanprops=None, capprops=None,
whiskerprops=None, manage_ticks=True, autorange=False,
zorder=None, *, data=None):


x:指定要绘制箱线图的数据,可以是一组数据也可以是多组数据;

notch:是否以凹口的形式展现箱线图,默认非凹口;

sym:指定异常点的形状,默认为蓝色的+号显示;

vert:是否需要将箱线图垂直摆放,默认垂直摆放;

whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;

positions:指定箱线图的位置,默认为range(1, N+1),N为箱线图的数量;

widths:指定箱线图的宽度,默认为0.5;

patch_artist:是否填充箱体的颜色,默认为False;

meanline:是否用线的形式表示均值,默认用点来表示;

showmeans:是否显示均值,默认不显示;

showcaps:是否显示箱线图顶端和末端的两条线,默认显示;

showbox:是否显示箱线图的箱体,默认显示;

showfliers:是否显示异常值,默认显示;

boxprops:设置箱体的属性,如边框色,填充色等;

labels:为箱线图添加标签,类似于图例的作用;

filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;

medianprops:设置中位数的属性,如线的类型、粗细等;

meanprops:设置均值的属性,如点的大小、颜色等;

capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;

whiskerprops:设置须的属性,如颜色、粗细、线的类型等;

manage_ticks:是否自适应标签位置,默认为True;

autorange:是否自动调整范围,默认为False;


绘制单个线形图

labels = 'A'
data = [0.8685, 0.6671, 0.7971, 0.5774]
plt.grid(True)  # 显示网格
plt.boxplot(data,
            medianprops={'color': 'red', 'linewidth': '1.5'},
            meanline=True,
            showmeans=True,
            meanprops={'color': 'blue', 'ls': '--', 'linewidth': '1.5'},
            flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 10},
            labels=labels)
plt.yticks(np.arange(0.4, 0.91, 0.1))
plt.show()


image.png


绘制多个线形图

labels = 'A', 'B', 'C', 'D', 'E', 'F'
A = [0.4978, 0.5764, 0.5073, 0.5609]
B = [0.5996, 0.65, 0.6251, 0.6473]
C = [0.6015, 0.687, 0.6237, 0.6761]
D = [0.5918, 0.6999, 0.6343, 0.6947]
E = [0.577, 0.6932, 0.6593, 0.7036]
F = [0.5637, 0.7161, 0.6683, 0.697]
plt.grid(True)  # 显示网格
plt.boxplot([A, B, C, D, E, F],
            medianprops={'color': 'red', 'linewidth': '1.5'},
            meanline=True,
            showmeans=True,
            meanprops={'color': 'blue', 'ls': '--', 'linewidth': '1.5'},
            flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 10},
            labels=labels)
plt.yticks(np.arange(0.4, 0.81, 0.1))
plt.show()

image.png


模板案例

直接使用plt.boxplot(df['列名'])

groups = df.groupby('OPERATOR', as_index=False)
boxes = []  # 列表(box1,box2,box3,...)
boxes_label = []
for 销售员, df_销售员 in groups:  # groupby得到的每一个group包含了分组的键值和被分组的数据
    boxes.append(df_销售员['PRICE'])
    boxes_label.append(销售员)
plt.figure(figsize=(15,7))
plt.boxplot(boxes,vert=False,whis=2,showmeans=True,showbox = True)   # 只调用依次boxplot画多组箱型图
plt.yticks(range(1,len(boxes_label)+1),boxes_label,fontsize=15.0)
plt.xticks(np.arange(0,11000,step=1000))
plt.xlabel('销售额',fontsize=15.0)
plt.ylabel('销售人员',fontsize=15.0)
plt.title('销售人员的销售业绩分析',fontsize=20.0)
plt.show()

image.png


绘制水晶形式箱形图

plt.figure(figsize=(15,7))
plt.violinplot(boxes,vert=True,showmeans=True)   # 只调用依次boxplot画多组箱型图
plt.xticks(range(1,len(boxes_label)+1),boxes_label,fontsize=15.0)
plt.yticks(np.arange(0,11000,step=1000))
plt.ylabel('销售额',fontsize=15.0)
plt.xlabel('销售人员',fontsize=15.0)
plt.title('销售人员的销售业绩分析',fontsize=20.0)
plt.show()


image.png


相关文章
|
9月前
|
Python
Python使用Matplotlib创建不同类型图表的案例
使用Matplotlib创建不同类型图表的案例
|
2月前
|
数据可视化 数据挖掘 C++
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
|
2月前
|
Python
使用Matplotlib创建不同类型图表的案例
【4月更文挑战第29天】使用Python的matplotlib库创建了四种基本图形:折线图、散点图、柱状图和饼图。代码分别展示了如何绘制这些图表,包括设置X轴和Y轴标签以及标题。这只是matplotlib的基础,更多图表和高级功能可供进一步学习和探索。
41 1
|
2月前
|
数据采集 小程序 数据挖掘
Matplotlib库模板学习,2024年最新微信小程序页面跳转方法总结
Matplotlib库模板学习,2024年最新微信小程序页面跳转方法总结
|
2月前
|
数据可视化 搜索推荐 数据处理
Matplotlib在数据科学中的应用与案例分析
【4月更文挑战第17天】本文探讨了Matplotlib在数据科学中的应用,强调其作为Python中最常用的可视化库,提供多种图表类型、高度可定制性、交互式功能及与其他库的集成。通过一个案例分析展示了如何使用Matplotlib绘制城市人口分布的条形图,并添加交互式元素以增强数据探索。掌握Matplotlib能提升数据科学家的可视化能力和效率。
|
2月前
|
Python
又再肝3天,整理了65个Matplotlib案例,这能不收藏?
又再肝3天,整理了65个Matplotlib案例,这能不收藏?
108 0
|
8月前
|
数据挖掘 Python
Python如何使用Matplotlib模块的pie()函数绘制饼形图?
Python如何使用Matplotlib模块的pie()函数绘制饼形图?
63 0
|
15天前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
29 1
|
15天前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
31 3
|
15天前
|
数据可视化 数据挖掘 API
数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。
【7月更文挑战第5天】数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。Matplotlib是基础库,提供高度自定义的2D图表,而Seaborn在其上构建,提供美观的统计图形。文章介绍了如何用两者画线图、散点图、条形图、饼图和直方图,展示数据趋势和关系。