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 npimport matplotlib.pyplot as pltimport pandas as pdplt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号import warningswarnings.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 mlabfig=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 snscorr=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()输出结果如下:




原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/11232627.html

时间: 2024-10-04 07:03:16

pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))的相关文章

【Python环境】matplotlib - 2D 与 3D 图的绘制

2015-10-30数据科学自媒体 类MATLAB API 最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数. 让我们加载它: from pylab import * 使用 qt 作为图形后端: %matplotlib qt 示例 类MATLAB API 绘图的简单例子: from numpy import * x = linspace(0, 5, 10) y = x ** 2figure() plot(x, y, 'r') xlabel('x') ylab

使用axes函数在matlab绘图中实现图中图的绘制

使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1/(t-3) 的曲线举例说明该函数的使用方法. 程序如下: clc;clear;close all;                                                                                                    

ASP.NET实现折线图的绘制

用到.Net中绘图类,实现折线图的绘制,生成图片,在页面的显示,代码如下: 1 /// <summary> 2 /// 获取数据 3 /// strChartName:图名称: 4 /// yName:纵坐标名称: 5 /// xName:横坐标名称: 6 /// iyMaxValue:纵坐标最大值: 7 /// dyAveValue:纵坐标单位值=(纵坐标最大值/标量30) 8 /// ----100 30 :3 9 /// ----200 30 :1.5: 10 /// xdbColumn

UML几种图的绘制

UML几种图的绘制 UML是Unified Modeling Language(统一建模语言)的简称.UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型.源代码.测试用例等)进行可视化.详述.构造和文档化的语言. UML是一套表示法系统.UML由一组图组成,它使得系统分析员可以利用这一标准来建立能够和客户.程序员以及任何参与程序开发的人员理解的多视角的系统蓝图.不同的风险承担人通常使用不同类型的图相互交流. UML的特点有:统一的标准:UML已被OMG接受为标准的建模语

java 数据结构 图中使用的一些常用算法 图的存储结构 邻接矩阵:图的邻接矩阵存储方式是用两个数组来标示图。一个一位数组存储图顶点的信息,一个二维数组(称为邻接矩阵)存储图中边或者弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 实例如下,左图是一个无向图。右图是邻接矩阵表示:

以下内容主要来自大话数据结构之中,部分内容参考互联网中其他前辈的博客. 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合. 无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示. 对于下图无向图G1来说,G1=(V1, {E1}),其中顶点集合V1={A,B,C,D}:边集合E1={(A,B),(B,C),(C,D),(D,A),(A,C)}: 有向图:若

如何绘制双轴柱状图和折线图?

如何绘制双轴柱状图和折线图? 答:第1步,先将数据作成如下表格. ××市2010--2014年农业灌溉用水有效利用系数 年份 灌溉亩数(万亩) 毛灌溉用水总量(万米3) 净灌溉用水总量(万米3) 灌溉水有效利用系数 考核标准 2010年 1.57 1440 691 0.48 0.55 2011年 1.57 1142 628 0.55 0.55 2012年 1.57 966 628 0.65 0.55 2013年 1.57 966 628 0.65 0.55 2014年 1.57 966 628

一个函数实现基因内具有多种突变类型的热图的绘制

??我们平常多见的基因突变热图是一个基因一个格子,一种突变类型,但实际上在同一个病人中,同一个基因往往具有多种突变类型,因此传统的热图绘制工具并不能满足我们绘图的需要.应研究需要,本人自己写了一个热图绘制函数,内部调用image 进行热图的绘制, barplot进行直方图绘制, 用data.table进行数据处理.对于一个基因内多种突变类型如何表现出来的问题, 这个函数先采用image将初步的热图绘制出来,再使用points,以方块形式将第二种突变,第三种突变依次添加, 在添加的同时方块位置稍为

思维导图怎样绘制

绘制思维导图的好处? 思维导图可以辅助我们思考问题,特别是对于逻辑性不是特别强的人来说,可以通过绘制思维导图对问题进行全面的分析,开发新思维从而使问题得到解决并且研究的更加透彻,思维导图带来的帮助无法估量. 绘制思维导图的注意事项? 在绘制思维导图时,通常都是围绕中心主题对分支内容进行展开,但是每一个分支节点又可以成为一个新的主题,所以在绘制思维导图时思路很重要. 思维导图怎样绘制? 工具: 迅捷画图在线网站,能上网的电脑并带有浏览器 操作方法介绍: 1.绘制思维导图借助工具辅助进行会很方便,打

分析思维导图与绘制思维导图方法介绍

每个人在生活中都会遇到很多形形×××的问题,面对这些问题我们要积极解决不要消沉的对待问题,在面对问题时我们都要解决问题的思维,这样事情就会得到好的解决,我所了解的思维导图就是一个很好的工具,可以将正确与错误的进行对比这样一分析就会没有什么问题了.利用思维导图对问题进行分析还有一个很大的问题就是思维导图的绘制方法,我们在面对不同的软件时使用的方法是不同的,我们可以根据下面分享的在迅捷画图中绘制思维导图的操作方法进行操作使用.以下步骤均在迅捷画图中进行绘制:1.上述讲述的迅捷画图是一款在线网站,里面