您现在的位置是:网站首页> 编程资料编程资料
python matplotlib绘画十一种常见数据分析图_python_
2023-05-26
488人已围观
简介 python matplotlib绘画十一种常见数据分析图_python_
1. 折线图
折线图(Line Chart)是一种将数据点按照顺序连接起来的图形,也可以看作是将散点图按照X轴坐标顺序链接起来的图形。折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而改变的连续数据。同时,还可以看出数量的差异
绘制折线图plot的格式:
matplotlib.pyplot.plot(*args,**kwargs)
color参数的8种常用的缩写见表
表2 color参数的常用颜色缩写:

plt.plot绘制折线图代码展示:
import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.arange(9) y = np.sin(x) z = np.cos(x) #marker数据点样式,linewidth线宽,linestyle线型样式,color颜色 plt.plot(x,y,marker='*',linewidth=1,linestyle='--',color='orange') plt.plot(x,z) plt.title('matplotlib AK') plt.xlabel('height',fontsize=15) plt.ylabel('width',fontsize=15) #设置图例 plt.legend(['Y','Z'],loc='upper right') plt.grid(True) plt.show()
2. 散点图
散点图(Scatter Diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,使用坐标点(散点)的分布形态反映特征间统计关系的一种图形。值时由点在图表中的位置表示,类别是由图表中的不同标记表示 ,通常用于比较跨类别的数据
scatter方法的格式:
matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,alpha=None)
scatter函数主要参数及其说明见表3scatter的主要参数及其说明

scatter绘图示例1:
fig.ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号 x1 = np.arange(1,30) y1 = np.sin(x1) ax1 = plt.subplot(1,1,1) plt.title('散点图 AK') plt.xlabel('X') plt.ylabel('Y') lvalue = x1 ax1.scatter(x1,y1,c='r',s=100,linewidths=lvalue,marker='o') plt.legend('x1') plt.show(),
scatter绘图示例2:
fig,ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号 for color in ['red','green','blue']: n = 500 x,y = np.random.randn(2,n) ax.scatter(x,y,c=color,label=color,alpha=0.3,edgecolor='none') ax.legend() ax.grid(True) plt.show()

3. 直方图
直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
绘制直方图函数bar格式:
matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None)
函数bar的常用参数及其说明见下表4
表4 bar常用参数及其说明:

bar绘图示例1:
import pandas as pd import matplotlib.pyplot as plt import numpy as np fig,axes = plt.subplots(2,1) data = pd.Series(np.random.randn(16),index=list('abcdefghijklmnop')) data.plot.bar(ax = axes[0],color='k',alpha=0.7) data.plot.barh(ax = axes[1],color='k',alpha=0.7)
bar绘图示例2:
import pandas as pd import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号 fig,ax = plt.subplots() x = np.arange(1,6) y1 = np.random.uniform(1.5,1.0,5) y2 = np.random.uniform(1.5,1.0,5) plt.bar(x,y1,width = 0.35,facecolor='lightskyblue',edgecolor = 'white') plt.bar(x+0.35,y2,width = 0.35,facecolor='yellowgreen',edgecolor = 'white') plt.show()

4. 饼图
饼图(Pie Graph)用于表示不同分类的占比情况,通过弧度大小来对比各种分类,饼图可以比较清楚的反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现的方式直观。
绘制饼图pie方法的格式:
matplotlib.pyplot.pie(x,explode = None,labels = None,color = None,autopct = None, pctdistance = 0.6,shadow=false,labeldistance=1.1,startangle=None,radius=None,...)
pie函数常用参数及其说明见表5
表5 pie函数常用参数及其说明:

pie绘图示例:
plt.figure(figsize=(6,6)) #建立轴的大小 labels = ['Springs','Summer','Autumn','Winter'] x = [15,30,45,10] explode = (0.05,0.05,0.05,0.05) #这个是控制分离的距离的,默认饼图不分离 plt.pie(x,labels = labels,explode = explode,startangle = 60,autopct='%1.1f%%') #autopct在图中显示比例值,注意值的格式 plt.title('Rany days by season') plt.show()
5. 箱线图
箱线图(Boxplot)也称盒须图,通过绘制反映数据分布特征的统计量,提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。箱线图使用数据中的5个统计量(最小值,下四分位数,中位数,上四分位数和最大值)来描述数据,它可以粗略地看出数据是否具有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较,还可以粗略检测异常值。
boxplot函数的格式:
matplotlib.pyplot.boxplot(x,notch = None,sym = None,vert = None,whis = None, positions = None,width = None,patch_artist = None, meanline = None,labels = None,...)
boxplot函数常用参数及其说明见表6
表6 boxplot函数常用参数及其说明:

import numpy as np import pandas as pd import matplotlib.pyplot as plt np.random.seed(2)#设置随机种子 df = pd.DataFrame(np.random.rand(5,4),columns = ['A','B','C','D']) #生成0~1的5*4维度数据并存入4列DataFrame中 df.boxplot() plt.show()

6.概率图
概率图模型时图灵获得者Pearl提出的用来表示变量间概率依赖关系的理论,正态分布又名高斯分布。正太概率密度函数normpdf(X,mu,sigma),其中,X为向量,mu为均值,sigma为标准差。
绘制概率图:
import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.stats import norm fig,ax = plt.subplots() plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号 np.random.seed(1587554) mu = 100 sigma = 15 x = mu+sigma*np.random.randn(437) num_bins = 50 n,bins,patches = ax.hist(x,num_bins,density=1,stacked=True) y = norm.pdf(bins,mu,sigma) ax.plot(bins,y,'--') fig.tight_layout() plt.show()

7.雷达图
雷达图也称网络图、星图、蜘蛛网图、不规则多边形、极坐标图等。雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。雷达图相当于平行坐标图,轴径向排列。
绘制某学生成绩信息的雷达图
import matplotlib.pyplot as plt import numpy as np %matplotlib inline #某学生的课程与成绩 courses = ['数据结构','数据可视化','高数','英语','软件工程','组成原理','C语言','体育'] scores = [82,95,78,85,45,88,76,88] dataLength = len(scores) #数据长度 #angles数组把圆周等分为dataLength份 angles = np.linspace(0,2*np.pi,dataLength,endpoint=False) scores.append(scores[0]) angless = np.append(angles,angles[0]) #闭合 #绘制雷达图 plt.polar(angless, #设置角度 scores, #设置各个角度上的数据 'rv--', #设置颜色、线型和端点符号 linewidth=2) #设置线宽 #设置角度网络标签 plt.thetagrids(angles*180/np.pi,courses,fontproperties='simhei',fontsize=12,color='k') #填充雷达图内部 plt.fill(angless,scores,facecolor='g',alpha=0.2) plt.show()

8.流向图
在运输问题中,常常需要表明产地的产量、销地的销量,以及流向和流量的交通图,此时可以用到流向图。流向图能够直观地展示数据流向,揭示出运动中的一些规律或现象。
流向图绘制:
import numpy as np import matplotlib.pyplot as plt Y,X = np.mgrid[-3:3:100j,-3:3:100j] U = -1-X**2+Y V = 1+X-Y**2 speed = np.sqrt(U*U+V*V) plt.streamplot(X,Y,U,V,color=U,linewidth = 2,cmap = plt.cm.autumn) plt.colorbar() f,(ax1,ax2) = plt.subplots(ncols=2) ax1.streamplot(X,Y,U,V,density=[0.5,1]) lw = 5*speed/speed.max() ax2.streamplot(X,Y,U,V,density=0.6,color='k',linewidth=lw) plt.show()


相关内容
- Python打包成exe文件的详细操作指南_python_
- python算法加密 pyarmor与docker_python_
- yolov5中anchors设置实例详解_python_
- Python基于钉钉监控发送消息提醒的实现_python_
- 关于yolov5的一些简单说明(txt文件、训练结果分析等)_python_
- Python Django框架中表单的用法详解_python_
- Python 获取今天任意时刻的时间戳的方法_python_
- Python实现识别文字中的省市区并绘图_python_
- 手把手教你在Pycharm中新建虚拟环境并使用(超详细!)_python_
- Python连接数据库并批量插入包含日期记录的操作_python_
