前言针对离散变量我们可以使用常见的条形图和饼图完成数据的可视化工作,那么,针对数值型变量,我们也有很多可视化的方法,例如箱线图、直方图、折线图、面积图、散点图等等。先来数值型变量的箱线图绘制。箱线图一般用来展现数据的分布(如上下四分位值、中位数等),同时,也可以用箱线图来反映数据的异常情况。

boxplot函数的参数解读

绘图之前,我们先来讲解一下matplotlib包中boxplot函数的参数含义及使用方法:

plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=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)x:指定要绘制箱线图的数据;

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

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

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

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

positions:指定箱线图的位置,默认为[0,1,2…];

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

patch_artist:是否填充箱体的颜色;

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

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

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

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

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

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

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

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

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

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

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

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

生成随机数

在这里我们利用 numpy 库生成三组正态分布随机数:

import matplotlib.pyplot as plt

import numpy as np

all_data=[np.random.normal(0,std,100) for std in range(1,4)]

figure,axes=plt.subplots() #得到画板、轴

axes.boxplot(all_data,patch_artist=True) #描点上色

plt.show() #展示

plt.subplots 顾名思义是子图集合,当不指定 plt.subplots() 的 nrows 和 ncols 参数值时,默认只生成一张图。

Note:默认 patch_artist=False,所以我们需要指定其参数值为 True,即可自动填充颜色。

多图输出有时我们会有把多张图放在同一行输出的对比需求,这时只需指定 plt.subplots() 函数的 nrows,ncols 参数值,举个例子,我想生成一个 2x3 的面板,即每一行放三张图,只需设定 nrows=2,ncols=3。

当然,你还可以通过参数 figsize 指定图形大小。

import matplotlib.pyplot as plt

import numpy as np

all_data=[np.random.normal(0,std,100) for std in range(1,4)]

#首先有图(fig),然后有轴(ax)

fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(9,4))

bplot1=axes[0].boxplot(all_data,

vert=True,

patch_artist=True)

#axes[0]表示在第一张图的轴上描点画图

#vert=True表示boxplot图是竖着放的

#patch_artist=True 表示填充颜色

bplot2 = axes[1].boxplot(all_data,

notch=True, # 切口形状

vert=True,

patch_artist=True)

plt.show()

# 第一张图是矩形箱线图

# 第二张图是 notch 形状的箱线图

# 显然,把两张图放在同一行输出非常有利于对比观察图形差异。

1.1.4 美化图形

基本图形画得差不多了,接下来就只需要让它美化一下!

我们先来查看一下我们之前作出的箱线图对象的类型:type(bplot1)

#dict

返回字典字典类型颜色填充 颜值即正义!要选个好的配色不容易呢…

填充颜色基本遵循以下步骤:指定箱线图中每个箱子的填充颜色,如:red、green、blue、pink 等 构造字典存放箱子配色 —— {箱线图中每个箱子patch:对应的配色color}

重新上色 —— patch.set_facecolor(color)

import matplotlib.pyplot as plt

import numpy as np

all_data=[np.random.normal(0,std,100) for std in range(1,4)]

#首先有图(fig),然后有轴(ax)

fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(9,4))

bplot1=axes[0].boxplot(all_data,

vert=True,

patch_artist=True)

bplot2 = axes[1].boxplot(all_data,

notch=True,

vert=True,

patch_artist=True)

#颜色填充

colors = ['pink', 'lightblue', 'lightgreen']

for bplot in (bplot1, bplot2):

for patch, color in zip(bplot['boxes'], colors):

patch.set_facecolor(color)

plt.show()

添加网格线

你可以:指定在x轴上添加网格线(ax.xaxis.grid(True)),或者在y轴上添加网格线(ax.yaxis.grid(True))

指定 x 轴和 y 轴上的刻度个数(ax.set_xticks([1,2,3]),ax.set_yticks([1,2,3,4,5,6,7,8]))

设置 x 轴名称(ax.set_xlabel("xlabel"))

设置 y 轴名称(ax.set_xlabel("ylabel"))

import matplotlib.pyplot as plt

import numpy as np

all_data=[np.random.normal(0,std,100) for std in range(1,4)]

#首先有图(fig),然后有轴(ax)

fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(9,4))

bplot1=axes[0].boxplot(all_data,

vert=True,

patch_artist=True)

bplot2 = axes[1].boxplot(all_data,

notch=True,

vert=True,

patch_artist=True)

#颜色填充

colors = ['pink', 'lightblue', 'lightgreen']

for bplot in (bplot1, bplot2):

for patch, color in zip(bplot['boxes'], colors):

patch.set_facecolor(color)

# 加水平网格线

for ax in axes:

ax.yaxis.grid(True) #在y轴上添加网格线

ax.set_xticks([y+1 for y in range(len(all_data))] ) #指定x轴的轴刻度个数

## [y+1 for y in range(len(all_data))]运行结果是[1,2,3]

ax.set_xlabel('xlabel') #设置x轴名称

ax.set_ylabel('ylabel') #设置y轴名称

# 添加刻度

# 添加刻度名称,我们需要使用 plt.setp() 函数:

# 加刻度名称

plt.setp(axes, xticks=[1,2,3],

xticklabels=['x1', 'x2', 'x3'])

# 我们的刻度数是哪些,以及我们想要它添加的刻度标签是什么。

plt.show()

import matplotlib.pyplot as plt

import numpy as np

# 添加标题

# 使用 ax.set_title 来设置单个图形主标题,用 fig.suptitle 来设置整张画板的标题:

data=np.random.binomial(n=10,p=0.76,size=(10,3))

labels=list("ABC")

fig,ax=plt.subplots(figsize=(9,6))

ax.boxplot(data,labels=labels,patch_artist=True)

plt.rcParams['font.sans-serif']=['SimHei'] #正确显示中文

plt.rcParams['axes.unicode_minus']=False #用来正确显示负号

ax.set_title("设置 fontsize=15 的标题",fontsize=15) #设置字体大小为15号字体

fig.suptitle("Boxplot Examples",fontsize=24)

plt.show()

# 想必细心的朋友已经发现了我在代码里偷偷加了两行设置字体的代码

# 这两行代码专为防止出现中文乱码而生!

# plt.rcParams['font.sans-serif']=['SimHei'] # 用来正确显示中文

# plt.rcParams['axes.unicode_minus']=False # 用来正确显示负号

import matplotlib.pyplot as plt

# 其他参数

# 在图上标记出均值线

fig,axes=plt.subplots(1,2,figsize=(9,5))

axes[0].boxplot(data,labels=labels,showmeans=True,meanline=False)

axes[0].set_title("默认 meanline=False",fontsize=15)

axes[1].boxplot(data,labels=labels,showmeans=True,meanline=True)

axes[1].set_title("meanline=True",fontsize=15)

plt.show()

# Note:

# meanline=False,那么均值位置会在图中用小三角表示出来

# meanline=True,那么均值位置会在图中用虚线表示出来

import matplotlib.pyplot as plt

# 在图上去除离群值

fig,axes=plt.subplots(1,2,figsize=(9,5))

axes[0].boxplot(data,labels=labels,patch_artist=True)

axes[0].set_title("默认 showfliers=True",fontsize=15)

axes[1].boxplot(data,labels=labels,patch_artist=True,showfliers=False)

axes[1].set_title("showfliers=False",fontsize=15)

plt.show()

# 默认 showfliers=True,那么图中会显示出离群值

# showfliers=False,那么图中会去除离群值

matplotlib可视化箱线图Github地址​github.com

此文章为最迷糊原创,特此声明!

matplotlib 均值_matplotlib可视化箱线图相关推荐

  1. R语言数据可视化-箱线图

    一.概述 箱线图(bar plot)又叫箱须图(box-whisker plot)在医学科技论文中经常有用到,用于展示数据的大致分布特征,也用于探索异常值和离群点.平行排列的箱线图可以用于比较在某个分 ...

  2. Matplotlib - 箱线图、箱型图 boxplot () 所有用法详解

    目录 基本用法 水平箱线图,显示均值 改变箱线图的形状(箱体的形状notch.异常值的形状sym) 改变箱线图的颜色(箱体边框的颜色.箱体填充色) 相较散点图和折线图,柱状图.饼图.箱线图(箱型图)是 ...

  3. 数据可视化(箱线图、直方图、散点图、联合分布图)

    数据可视化 箱线图可视化 箱线图(Box plot)也称箱须图(Box-whisker Plot).箱线图.盒图,可以用来反映一组或多组连续型定量数据分布的中心位置和散布范围. 连续型数据:在一定区间 ...

  4. Python数据可视化的例子——箱线图(box)

    箱线图是另一种体现数据分布的图形,通过该图可以得知数据的下须值(Q1-1.5IQR).下四分位数(Q1).中位数(Q2).均值.上四分位数(Q3)和上须值(Q3+1.5IQR),更重要的是,箱线图还可 ...

  5. 数据分析入门之Matplotlib数据可视化基础(散点图、折线图、直方图、饼图、箱线图)

    文章目录 1.掌握pyplot基础语法 1.1.基本绘图流程 1.2.创建画布与创建子图 1.2.1.设置画布大小 1.2.2.添加图列 1.2.3.解决中文乱码 1.3.添加画布内容 1.4.保存与 ...

  6. python数据可视化 matplotlib(2) 小白 - 典型图形进阶版:堆积折线图/并列柱状图/阶梯图/箱线图

    今天依然是matplotlib,在入门版的基础上加入了更多的组合和样式设置,matplotlib库是建立在Numpy基础上的绘图库. 典型统计图形对比 柱状图 堆积图:将若干统计图形堆叠起来的统计图形 ...

  7. 可视化篇(四)——— python绘制双y轴、箱线图、概率分布三种图形及案例

    可视化篇(四)--- python绘制双y轴.箱线图.概率分布三种图形及案例 摘要 绘制双y轴图形 绘制箱线图 绘制概率分布图 摘要 本文演示了如何通过python绘制双y轴.箱线图.概率分布三种图形 ...

  8. Python数据可视化:如何创建箱线图

    一图胜千言,使用Python的matplotlib库,可以快速创建高质量的图形. 我们团队推出一个新的系列教程:Python数据可视化,针对初级和中级用户,将理论和示例代码相结合,使用matplotl ...

  9. python panda 库箱线图_Python数据可视化:箱线图多种库画法

    概念 箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q ...

最新文章

  1. python.freelycode.com-Python数据可视化2018:为什么这么多的库?
  2. 【总结整理】开发说不能做怎么办
  3. 深入理解SpringBoot(4)——web开发
  4. 最长公共子序列-动态规划(C/C++)
  5. 单链表的回文判断(O(n)时间复杂度和O(1)的空间复杂度)
  6. Error while executing: am start -n错误解决方案
  7. Sublime 常用操作
  8. 离散数学与c语言程序设计,2016年中山大学数据科学与计算机学院S6705002离散数学与C程序设计)之C程序设计复试笔试最后押题五套卷...
  9. 学校后勤物资管理系统(数据库课程设计)
  10. 新手与GitHub——菜鸟教程
  11. 微搭低代码中实现二维码生成
  12. Openwrt平台搭建
  13. 51单片机最小系统解读
  14. xp mysql 5.6安装版下载地址_xp系统安装版下载,xp系统安装版下载地址
  15. 感谢生命中的每一次遇见
  16. 先马后看!详解线性回归、朴素贝叶斯、随机森林在R和Python中的实现应用!(附代码)...
  17. 高效解决Tomcat控制台以及浏览器打开txt文件乱码问题
  18. 学校计算机申请报告,【体育器材申请报告】_学校体育器材申请报告格式及范文...
  19. 如何使用html实现在线秒表,javascript实现一款好看的秒表计时器
  20. sqlserver的分页查询

热门文章

  1. 天翼云监控客户pc端及手机端下载安装教程
  2. mac注销快捷键_mac关机的快捷键,不要强制关机。
  3. 元·认知·人机环·渔樵耕读
  4. PAC bounding学习记录
  5. u盘启动会进入w ndows安装程序,将Windows装进U盘中,随身携带Windows系统
  6. 微波链路视距(Line of Sight,LOS)传播勘测
  7. 英语词汇服饰篇——Bottoms下装
  8. click是哪个键 wheel_Click是什么意思?键盘上的Click键在哪里?
  9. 【零基础系列】K-Means聚类算法
  10. Pr:导出设置之多路复用器与常规