本篇博文主要内容ython Pyplot中的十一个常用绘图,包括参数说明,代码,运行结果。
有问题可以+Q180096010一起交流学习~

目录

1. 折线图

plt.plot绘制折线图代码展示:

2. 散点图

scatter绘图示例1:

3. 直方图

bar绘图示例1:

bar绘图示例2:

4. 饼图

pie绘图示例:

5. 箱线图

boxplot绘图示例:

6.概率图

绘制概率图:

7.雷达图

绘制某学生成绩信息的雷达图

8.流向图

流向图绘制

9.绘图中的表格设置

在绘图中显示数据表格

10. 极坐标图

绘制极坐标图

11. 词云图

11.1 安装相关的包

11.2 词云生成过程

11.3 词云生成示例:

结尾:


1. 折线图

折线图(Line Chart)是一种将数据点按照顺序连接起来的图形,也可以看作是将散点图按照X轴坐标顺序链接起来的图形。折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而改变的连续数据。同时,还可以看出数量的差异

绘制折线图plot的格式:

matplotlib.pyplot.plot(*args,**kwargs)

plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数及其说明见下表1

表1 plot主要参数及其说明

参数 说明 x,y 接收array,表示X轴和Y轴对应的数据,无默认 color 接收特定string,指定线条的颜色,默认为None linestyle 接收特定string,指定线条的类型,默认为“-” marker 接收特定的string,表示绘制的点的类型,默认为None alpha

接收0~1的小数,表示点的透明度,默认为None

color参数的8种常用的缩写见表2

表2 color参数的常用颜色缩写
颜色缩写 代表的颜色
b 蓝色
g 绿色
r 红色
c 青色
m 品红
y 黄色
k 黑色
w 白色

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函数主要参数及其说明见表3

scatter的主要参数及其说明
参数 说明
x,y 接收array,表示X轴和Y轴对应的数据,无默认
s

接收数值或一维的array,指定点的大小,若传入一维array则表示每个点的大小,默认为None

c 接收颜色或一维的array,指定点的颜色,若传入一维array则表示每个点的颜色,默认为None
marker 接收特定的string,表示绘制的点的类型,默认为None
alpha 接收0~1的小数,表示点的透明度,默认为None

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 = 500x,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常用参数及其说明
参数 说明
left 接收array,表示X轴数据,无默认
height 接收array,表示X轴所代表数据的数量,无默认

width

接收0~1的float,指定直方图宽度,默认为0.8
color 接收特定string或者包含颜色字符串的array,表示直方图颜色,默认为None

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函数常用参数及其说明
参数 说明
x 接收array,表示用于绘制饼图的数据,无默认
explode 接收array,指定项离饼图圆心为n个半径,默认为None
labels 接收array,指定每一项的名称,默认为None
color 接收特定的string或包含颜色字符串的array,表示颜色,默认为None
autopct 接收特定的string,指定数值的显示方式,默认为None
pctdistance float型,指定每一项的比例和距离饼图圆心n个半径,默认为0.6
labeldistance float型,指定每一项的名称和距离饼图圆心的半径数,默认为1.1
radius float型,表示饼图的半径,默认为1

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函数常用参数及其说明
参数 说明
x 接收array,表示用于绘制箱线图的数据,无默认
notch 接收boolean,表示中间箱体是否有缺口,默认为None
sym 接收特定的string,指定异常点形状,默认为None
vert 接收boolean,表示图形是纵向的或者横向,默认为None
positions 接收array,表示图形位置,默认为None
width 接收scalar或者array,表示每个箱体的宽度,默认为None
labels 接收array,指定每一个箱线图的标签,默认为None
meanline 接收boolean,表示是否显示均值线,默认为False

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()

9.绘图中的表格设置

在绘图中,有时候需要同时显示数据表格。Matplotlib在绘图中提供了table方法可以同时显示数据表格

在绘图中显示数据表格

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei']
data = [[66386,174296,75131,577908,32015],[58230,381139,78045,99308,160454],[89135,80552,152558,497981,603535],[78415,81858,150656,193263,69638],[139361,331509,343164,781380,52269]]
columns = ('Freeze','Wind','Flood','Quake','Hail')
rows = ['%d year'% x for x in (100,50,20,10,5)]
values = np.arange(0,2500,500)
value_increment = 1000
colors = plt.cm.BuPu(np.linspace(0,0.5,len(columns)))
n_rows=len(data)
index = np.arange(len(columns))+0.3
bar_width=0.4
y_offset = np.array([0.0]*len(columns))
cell_text = []
for row in range(n_rows):plt.bar(index,data[row],bar_width,bottom=y_offset)y_offset = y_offset+data[row]cell_text.append(['%1.1f'%(x/1000.0) for x in y_offset])
colors = colors[::-1]
cell_text.reverse()
the_table = plt.table(cellText=cell_text,rowLabels=rows,rowColours = colors,colLabels = columns,loc = 'bottom')
plt.subplots_adjust(left=0.2,bottom=0.2)
plt.ylabel("Loss in ${0}'s".format(value_increment))
plt.yticks(values*value_increment,['%d' % val for val in values])
plt.xticks([])
plt.title('气象灾害损失')
plt.show()

10. 极坐标图

在平面投影中,由X轴和Y轴定位坐标;而在极坐标投影中,需要以半径和角度的形式定位坐标。极坐标投影中的半径以圆半径的大小显示,并且以每个角度为0°的圆的角度为起点投影角度。要生成极坐标投影,需要将投影类型定义为极坐标。

绘制极坐标图

import numpy as np
import matplotlib.pyplot as plt
r = np.linspace(0,2,100)
theta = 2*np.pi*r
fig = plt.figure(figsize=(13,4))
ax1 = plt.subplot(121,projection='polar')
ax1.scatter(theta,r,label='Polar Projection',s=10)
ax1.legend(bbox_to_anchor=(0.85,1.35))
ax2 = plt.subplot(122)
ax2.scatter(theta,r,label='Polar Projection',s=10)
ax2.legend(bbox_to_anchor=(0.85,1.35))
ax2.set_xlabel('R')
ax2.set_ylabel(r'$\theta$')

11. 词云图

词云用于对网络文本中出现频率较高的关键词予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只需要一眼扫过文本就可以领略文本的主旨。

11.1 安装相关的包

绘制词需要WordCloud和jieba包。jieba用于从文本的句子里分割出词汇。两个包的安装语句:

pip install wordcloud
pip install jieba

11.2 词云生成过程

一般生成词云的过程为:

1)使用Pandas读取数据并将需要分析的数据转化为列表
2)对获得的列表数据使用分词工具jieba进行遍历分词

3)使用WordCloud设置词云图片的属性、掩码和停用词,并生成词云图像。

11.3 词云生成示例:

生成示例在之前博文有发布过,可以参考进行学习。
https://blog.csdn.net/weixin_52797843/article/details/122547594?spm=1001.2014.3001.5502

结尾:

关于python pyplot的十一个常用的绘图到此就分享结束了,感谢大家浏览阅读,有问题可以私信或者加Q 180096010一起交流学习。

觉得文章有用的同学,可以收藏方便以后学习哟~。

一篇文章让你学会绘画十一种常见数据分析图(折线图,直方图,散点图,雷达图等等)相关推荐

  1. python kline_一篇文章教你学会用kline获取量化数据

    阅读原文:http://t.cn/RicAPbx KLineHistory -获取k线数据 概述 获取K线数据类,该类可以通过调用IStatisticsGroup类的kLineHistory方法获取, ...

  2. 一篇文章教你学会使用SpringBatch 监听器Listener

    文章目录 一.SpringBatch监听器 二.搭建SpringBatch开发环境 三.监听器详细介绍 1.JobExecutionListener 2.StepExecutionListener 3 ...

  3. 一篇文章教你学会使用SpringBoot实现文件上传和下载

    文章目录 一.搭建SpringBoot开发环境 1.创建项目 2.配置application.properties参数 3.实体响应类和异常信息类 4.创建FileController 二.接口测试 ...

  4. 一篇文章教你学会如何使用CSS中的雪碧图(CSS Sprite)

    一篇文章教你学会如何使用CSS中的雪碧图(CSS Sprite) 一.什么是雪碧图? 雪碧图(CSS Sprite)又叫CSS精灵图,是一种网页图片应用处理方式,他允许你将一个页面设计到 所有零星图片 ...

  5. 一篇文章教你学会实现模糊搜索结果的关键词高亮显示

    一篇文章教你学会实现模糊搜索结果的关键词高亮显示 话不多说,先看效果图: 代码如下: <!DOCTYPE html> <html lang="en">< ...

  6. 一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图)值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话:"八小时内谋生活,八小时外谋发展. ...

  7. 【机器学习】交叉验证详细解释+10种常见的验证方法具体代码实现+可视化图

    [机器学习]交叉验证详细解释+10种常见的验证方法具体代码实现+可视化图 一.使用背景 由于在训练集上,通过调整参数设置使估计器的性能达到了最佳状态:但在测试集上可能会出现过拟合的情况. 此时,测试集 ...

  8. 一篇文章搞定交换机的三种端口类型

      啥?交换机的三种端口类型是哪三种?他们有哪些特点?数据处理过程是怎样?你可千万别再一问三不知了,一篇文章帮你搞定. 一.交换机三种端口类型特点: 二.交换机接口出入数据处理过程: 理解这三个名词解 ...

  9. canvas 圆角矩形填充_一篇文章让你学会你最“害怕”的Canvas,太有意思了

    Canvas画布 基本用法 <canvas id='canvas' width="150" height="150"></canvas> ...

最新文章

  1. 工具箱支持汽车质量人工智能
  2. 物联网技术与应用(第1-2课时)(cont.)
  3. 艾伟:尽可能摆脱对HttpContext的依赖
  4. 15道使用频率极高的基础算法题
  5. 鸟哥的Linux私房菜(基础篇)- 一个简单的 SPFdisk 分割实例
  6. 基于Redis的CustomerSessionProvider(一)
  7. 浅析ElasticSearch原理
  8. 2021年中国一次性卫生设备市场趋势报告、技术动态创新及2027年市场预测
  9. PostGis加载空间数据
  10. 10年年初写的述职报告
  11. 计算机组成原理学习通题目汇总
  12. Centos7安装加速下载工具aria2
  13. QQ在线等级算法实现
  14. matlab平行线的中线,cad怎么画两条平行线的中线
  15. POM文件配置的详解
  16. Python与数据库
  17. 那个耍了 Google 的天才工程师,又摆了 Uber 一道
  18. 把QQ聊天记录插入数据库中
  19. 辐射安全管理考试笔记
  20. R 关于NA的处理办法

热门文章

  1. 海明码(汉明码,汉明距离)
  2. 面向对象思想在UnityUI控制背景音乐音效大小开关中的运用
  3. java查询所有数据_elasticsearch查询所有数据restful api以及java代码实现
  4. SCN Headroom
  5. 2023年外贸行业面临的现状
  6. SP服务商收益到底有多大?
  7. 记录一次计算两个日期间的工作日天数,排除节假日、周末等
  8. nestjs - 01
  9. vue2的9种性能优化方式
  10. 用 Python 分析《斗破苍穹》,分析其究竟是烂片无疑还是沧海遗珠?