pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))
//2019.07.23
1、箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据

其中的一些参数具体含义及其计算过程如下:

2、双轴图的绘制代码:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
import warnings
warnings.filterwarnings("ignore") #忽略相应的警告信息
df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件
print(df)
print(df.index)
print(df.columns)
d=df[:5]
print(d)
2、#双轴图的绘制.twinx()
import matplotlib.mlab as mlab
fig=plt.figure(figsize=(10,8))
ax1=fig.add_subplot(1,1,1)
n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")
ax1.set_ylabel("电影数量",fontsize=15)
ax1.set_xlabel("评分",fontsize=15)
ax1.set_title("频率分布直方图",fontsize=20)
y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数
ax2=ax1.twinx() #定义新的双轴图函数
ax2.plot(bins,y,"b--")
ax2.set_ylabel("概率分布",fontsize=15)
3、#散点图的绘制plt.scatter(x,y)绘制散点图
x=df["评分人数"][::10]
y=df["评分"][::10] #隔10个点进行选取数据点
plt.figure(2)
plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出
plt.xlabel("评分",fontsize=15)
plt.ylabel("评分人数",fontsize=15)
plt.title("酒店评分与人数散点图",fontsize=20)
4、#箱线图的绘制
d=df[df.类型=="商务出行"]["评分"]
print(d)
plt.figure(4)
plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})


#箱线图的格式设置和调整
plt.title("商务出行酒店的评分数据分布",fontsize=17)
#多组数据的箱线图
d1=df[df.类型=="浪漫情侣"]["评分"]
d2=df[df.类型=="地铁周边"]["评分"]
d3=df[df.类型=="休闲度假"]["评分"]
d4=df[df.类型=="海滨风光"]["评分"]
d5=df[df.类型=="交通方便"]["评分"]
d6=df[df.类型=="商务出行"]["评分"]
plt.figure(5)
plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}
,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向
#坐标轴的编辑与改变
ax=plt.gca() #坐标轴的编辑与改变
ax.patch.set_facecolor("white") #设置坐标轴的背景颜色
ax.patch.set_alpha(0.3) #设置配色和透明度
plt.title("不同类型酒店的评分箱线图",fontsize=20)
plt.xlabel("酒店类型",fontsize=15)
plt.ylabel("评分大小",fontsize=15)
#相关系数矩阵图
df1=df[["评分","评分人数"]]
df1["排序"]=np.random.randint(1,100,396)
print(df1)
r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))
#对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist(数据密度图或者直方图选择)
5、#相关系数热力图
import seaborn as sns
corr=df1.corr()
corr=abs(corr)
ax=plt.figure(figsize=(10,8))
ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)


plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("数据名称",fontsize=15)
plt.ylabel("数据名称",fontsize=15)
plt.title("不同数据间相关系数矩阵图",fontsize=20)
plt.show()
整体运行代码如下:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
import warnings
warnings.filterwarnings("ignore") #忽略相应的警告信息
df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件
print(df)
print(df.index)
print(df.columns)
d=df[:5]
print(d)
#双轴图的绘制.twinx()
import matplotlib.mlab as mlab
fig=plt.figure(figsize=(10,8))
ax1=fig.add_subplot(1,1,1)
n,bins,patches=ax1.hist(df["评分"],bins=100,color="m") ax1.set_ylabel("电影数量",fontsize=15)
ax1.set_xlabel("评分",fontsize=15)
ax1.set_title("频率分布直方图",fontsize=20) y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数
ax2=ax1.twinx() #定义新的双轴图函数
ax2.plot(bins,y,"b--")
ax2.set_ylabel("概率分布",fontsize=15) #散点图的绘制plt.scatter(x,y)绘制散点图
x=df["评分人数"][::10]
y=df["评分"][::10] #隔10个点进行选取数据点
plt.figure(2)
plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出
plt.xlabel("评分",fontsize=15)
plt.ylabel("评分人数",fontsize=15)
plt.title("酒店评分与人数散点图",fontsize=20) #箱线图的绘制
d=df[df.类型=="商务出行"]["评分"]
print(d)
plt.figure(4)
plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})
#箱线图的格式设置和调整
plt.title("商务出行酒店的评分数据分布",fontsize=17)
#多组数据的箱线图
d1=df[df.类型=="浪漫情侣"]["评分"]
d2=df[df.类型=="地铁周边"]["评分"]
d3=df[df.类型=="休闲度假"]["评分"]
d4=df[df.类型=="海滨风光"]["评分"]
d5=df[df.类型=="交通方便"]["评分"]
d6=df[df.类型=="商务出行"]["评分"]
plt.figure(5)
plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}
,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向
#坐标轴的编辑与改变
ax=plt.gca() #坐标轴的编辑与改变
ax.patch.set_facecolor("white") #设置坐标轴的背景颜色
ax.patch.set_alpha(0.3) #设置配色和透明度
plt.title("不同类型酒店的评分箱线图",fontsize=20)
plt.xlabel("酒店类型",fontsize=15)
plt.ylabel("评分大小",fontsize=15)
#相关系数矩阵图
df1=df[["评分","评分人数"]]
df1["排序"]=np.random.randint(1,100,396)
print(df1)
r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))
#对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist #相关系数热力图
import seaborn as sns
corr=df1.corr()
corr=abs(corr)
ax=plt.figure(figsize=(10,8))
ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("数据名称",fontsize=15)
plt.ylabel("数据名称",fontsize=15)
plt.title("不同数据间相关系数矩阵图",fontsize=20)
plt.show()
输出结果如下:



pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))的更多相关文章
- 【Python环境】matplotlib - 2D 与 3D 图的绘制
2015-10-30数据科学自媒体 类MATLAB API 最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数. 让我们加载它: from pylab import ...
- ArcGis For Silverlight API,地图显示Gis,绘制点,线,绘制图等--绘制点、线、圆,显示提示信息
ArcGis For Silverlight API,地图显示Gis,绘制点,线,绘制图等--绘制点.线.圆,显示提示信息 /// <summary> /// 绘制界面上的点和线 /// ...
- 使用axes函数在matlab绘图中实现图中图的绘制
使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1 ...
- 单自由度系统中质量、阻尼和刚度变化对频率响应函数(FRF)影响图的绘制
作者:赵兵 日期:2020-02-17 目录 单自由度系统中质量.阻尼和刚度变化对频率响应函数(FRF)影响图的绘制 1. 背景 2. VISIO绘制 3. Matlab绘制 ...
- Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
matplotlib图像绘制 / matplotlib image description 目录 关于matplotlib matplotlib库 补充内容 Figure和AxesSubplot的生 ...
- ASP.NET实现折线图的绘制
用到.Net中绘图类,实现折线图的绘制,生成图片,在页面的显示,代码如下: /// <summary> /// 获取数据 /// strChartName:图名称: /// yName:纵 ...
- PIE SDK线元素的绘制
1. 功能简介 在数据的处理中会用到线元素的绘制,目前PIE SDK支持ILineSymbol的线元素的绘制,LineSymbol对象是用于修饰线状对象的符号,它包括CartographicLineS ...
- pytorch中网络特征图(feture map)、卷积核权重、卷积核最匹配样本、类别激活图(Class Activation Map/CAM)、网络结构的可视化方法
目录 0,可视化的重要性: 1,特征图(feture map) 2,卷积核权重 3,卷积核最匹配样本 4,类别激活图(Class Activation Map/CAM) 5,网络结构的可视化 0,可视 ...
- UML图 | 时序图(顺序、序列图)绘制
上一次写过一篇 UML | 类图 相关的文章,平时规范开发会用的上,或者是写什么文档,就还是需要画图,就像毕业设计就是如此.希望能够帮助到大家. 注:本文中所用画图软件为 Microsoft Visi ...
随机推荐
- 十 Spring的AOP的底层实现:JDK动态代理和Cglib动态代理
SpringAOP底层的实现原理: JDK动态代理:只能对实现了接口的类产生代理.(实现接口默认JDK动态代理,底层自动切换) Cglib动态代理(类似Javassist第三方的代理技术):对没有实现 ...
- 云账房获取2.76亿元D轮投资
财税管理SaaS服务商云帐房 南京云帐房网络科技有限公司正式成立于2015年3月,法定代表人为薛兴华. 2015年获得600万人民币天使轮融资,投资方为AA投资: 2016年5月份完成数千万人民币A轮 ...
- Eth合约攻击
前言 Ethernaut是一个类似于CTF的智能合约平台,集成了不少的智能合约相关的安全问题,这对于安全审计人员来说是一个很不错的学习平台,本篇文章将通过该平台来学习智能合约相关的各种安全问题,由于关 ...
- 利用Session实现三天免登陆
什么是Session Session:在计算机中,尤其是在网络应用中,称为“会话控制”.(百度百科) Session:服务器端的数据存储技术. Session要解决什么问题 一个用户的不同请求(重定位 ...
- 浅谈脱壳中的附加数据问题(overlay)
Author:Lenus -------------------------------------------------- 1.前言 最近,在论坛上看到很多人在弄附加数据overlay的问题,加上 ...
- 【快学springboot】13.操作redis之String数据结构
前言 在之前的文章中,讲解了使用redis解决集群环境session共享的问题[快学springboot]11.整合redis实现session共享,这里已经引入了redis相关的依赖,并且通过spr ...
- Windows API 常用函数---转载
Windows API 常用函数 2014-10-15 14:21 xiashengwang 阅读(2105) 评论(0) 编辑 收藏 .Net中虽然类库很强的,但还是有些时候功能有限,掌握 ...
- Py2与Py3的区别
总结Py2 与Py3 的区别 1 编码区别 在Python2中有两种字符串类型str和Unicode. 默认ASCII python2 str类型,相当于python3中的bytes类型 python ...
- Zabbix在Docker中的应用和监控
目录 Zabbix在Docker中的应用和监控 一.如何使Zabbix跑在Docker里 1.Docker基础环境配置 2.Docker-compose安装配置 3.启动zabbix server 4 ...
- SpringBoot Date类型插入数据库始终比正确时间早一天问题解决办法
bug描述 昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天 输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天 https:// ...