python matplotlib绘画十一种常见数据分析图

目录
  • 1. 折线图
  • 2. 散点图
  • 3. 直方图
  • 4. 饼图
  • 5. 箱线图
  • 6.概率图
  • 7.雷达图
  • 8.流向图
  • 9.绘图中的表格设置
  • 10. 极坐标图
  • 11. 词云图
    • 11.1 安装相关的包
    • 11.2 词云生成过程

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

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 wordcloudpip install jieba

11.2 词云生成过程

一般生成词云的过程为:

  • 1)使用Pandas读取数据并将需要分析的数据转化为列表
  • 2)对获得的列表数据使用分词工具jieba进行遍历分词
  • 3)使用WordCloud设置词云图片的属性、掩码和停用词,并生成词云图像。

到此这篇关于python matplotlib绘画十一种常见数据分析图的文章就介绍到这了,更多相关python matplotlib 绘图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python使用Matplotlib绘制多种常见图形

    目录 柱状图 水平绘制柱状图 多个柱状图 叠加型柱状图 散点图 气泡图 直方图 箱线图 添加文字描述 添加文字描述 方法二 多个图形描绘 subplots 使用Pandas 绘图 Matplotlib官网如果想了解更多可查看官网. import numpy as np import matplotlib.pyplot as plt %matplotlib inline #写了这个就可以不用写plt.show() plt.rcParams['font.sans-serif']=['SimHei']

  • Python Matplotlib绘制动画的代码详解

    目录 matplotlib 动画 人口出生率 男女人口总数 雨滴 matplotlib 动画 我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制.首先需要告诉matplotlib我们想要制作一个动画,然后必须指定想要在每一帧绘制什么.一个常见的错误是重新绘制每一帧的所有内容,这会使整个过程非常缓慢.相反地,只能更新必要的内容,因为我们知道许多内容不会随着帧的变化而改变.对于折线图,我们将使用set_data方法更新绘图,剩下的工作由matplotlib完成. 注意随着动画移动的终点标记.原因

  • Python中的数据可视化matplotlib与绘图库模块

    目录 一.条形图bar() 二.直方图 三.折线图 四.散点图+直线图 五.饼图 六.箱型图 七.plot函数参数 八.图像标注参数 九.Matplolib应用 matplotlib官方文档:https://matplotlib.org/stable/users/index.html matplotlib是一个绘图库,它可以创建常用的统计图,包括条形图.箱型图.折线图.散点图.饼图和直方图. 一.条形图bar() import matplotlib.pyplot as plt from matp

  • Python数据分析Matplotlib 柱状图绘制

    前言: 柱状图是一种使用矩形柱来表示数据分布的图表,可以横向排列,也可以纵向排列,它的高度或长度和他们所代表的值成正比关系. Matplotlib 提供了bar()方法绘制柱状图, 语法格式如下: plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs) 常用参数及说明如下: x:表示x轴数据,接收list列表类型数据 height:表示柱状图的高度,接收list列表类型数据 width:

  • Python数据分析之使用matplotlib绘制折线图、柱状图和柱线混合图

    目录 matplotlib介绍 matplotlib绘制折线图 matplotlib绘制柱状图 matplotlib绘制柱线混合图 总结 matplotlib介绍 Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 PyQt 和 wxPython. 安装Matplotlib库命令:在cmd命令窗口输入pip install matplotlib. matplotlib绘制折线图 1.绘

  • 教你利用python的matplotlib(pyplot)绘制折线图和柱状图

    目录 前言 一.折线图 二.柱状图 总结 前言 今天帮师兄赶在deadline之前画论文的图,现学现卖很是刺激,现把使用matplotlib的子库pyplot画折线图和柱状图的代码记录分享一下,方便大家参考,个人感觉pyplot真的蛮方便的,非常值得使用. 先看下官方对pyplot的描述:“Provides a MATLAB-like plotting framework.”.对,就是一个类似matlab的画图框架.就不多多说了,直接上代码吧: 一.折线图 代码: import matplotl

  • Python数据分析之 Matplotlib 饼图绘制

    前言: 饼状图是用来呈现一个数据系列中各项的大小与各项占项总和的百分比,Matplotlib 提供了plt.pie()方法绘制柱状图,语法格式如下: plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None,

  • Python数据分析之 Matplotlib 散点图绘制

    前言: 散点图,又称散点分布图,是使用多个坐标点的分布反映数据点分布规律.数据关联关系的图表,Matplotlib 中可以通过以下方式绘制散点图: 使用plt.plot方法: 在上篇文章Python数据分析之 Matplotlib 折线图绘制中,我们介绍了可以使用plt.plot()方法绘制折线图,该方法同样可以绘制散点图,如下: import random x = range(15) y = [i + random.randint(-2,2) for i in x] plt.plot(x, y

  • python matplotlib绘画十一种常见数据分析图

    目录 1. 折线图 2. 散点图 3. 直方图 4. 饼图 5. 箱线图 6.概率图 7.雷达图 8.流向图 9.绘图中的表格设置 10. 极坐标图 11. 词云图 11.1 安装相关的包 11.2 词云生成过程 1. 折线图 折线图(Line Chart)是一种将数据点按照顺序连接起来的图形,也可以看作是将散点图按照X轴坐标顺序链接起来的图形.折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而改变的连续数据.同时,还可以看出数量的差异 绘制折线图p

  • python代码的几种常见加密方式分享

    目录 1.发行.pyc文件 1.1 编译加密 1.2 是否可逆 1.3是否影响模块调用 2.代码混淆 3.生成exe可执行文件 4…py文件转化为.so文件 5.附加运行辅助包文件 方式一:高级加密模式,需要引导代码 方式二:超级加密模式 方式三: 虚拟加密模式 Python的文件类型介绍: .py python的源代码文件 .pyc Python源代码import后,编译生成的字节码 .pyo Python源代码编译优化生成的字节码.pyo比pyc并没有优化多少,只是去掉了断言 .pyd Py

  • 简单谈谈Python中的几种常见的数据类型

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型有以下几种: 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0

  • Spring框架十一种常见异常的解决方法汇总

    在程序员生涯当中,提到最多的应该就是SSH三大框架了.作为第一大框架的Spring框架,我们经常使用. 然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉. 一.找不到配置文件的异常 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [com/herman/ss/controller];

  • Python常见数据类型转换操作示例

    本文实例讲述了Python常见数据类型转换操作.分享给大家供大家参考,具体如下: 类型转换 主要针对几种存储工具:list.tuple.dict.set 特殊之处:dict是用来存储键值对的. 1.list 转换为set l1 = [1, 2, 4, 5] s1 = set(l1) print(type(s1)) print(s1) 输出: <class 'set'> {1, 2, 4, 5} 2.set转换为list s1 = set([1, 2, 3, 4]) l1 = list(s1)

  • Python几种常见算法汇总

    1.选择排序 选择排序是一种简单直观的排序算法.它的原理是这样:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的后面,以此类推,直到所有元素均排序完毕.算法实现如下: #找到最小的元素def FindSmall(list): min=list[0] for i in range(len(list)): if list[i]<min: min=list[i] return min #选择排序def Select_

  • python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意味着概念.方法.参数繁多,让许多新手望而却步. 据我了解,大部分人在对matplotlib接触不深时都是边画图边百度,诸如这类的问题,我想大家都似曾相识:Python如何画散点图,matplotlib怎么将坐标轴标签旋转45度,怎么设置图例字体大小等等.无论针对哪一个问题,往往都有多种解决方法,搜索

  • python Matplotlib数据可视化(2):详解三大容器对象与常用设置

    上一篇博客中说到,matplotlib中所有画图元素(artist)分为两类:基本型和容器型.容器型元素包括三种:figure.axes.axis.一次画图的必经流程就是先创建好figure实例,接着由figure去创建一个或者多个axes,然后通过axes实例调用各种方法来添加各种基本型元素,最后通过axes实例本身的各种方法亦或者通过axes获取axis实例实现对各种元素的细节操控. 本篇博客继续上一节的内容,展开介绍三大容器元素创建即通过三大容器可以完成的常用设置. 1 figure 1.

  • 一文带你了解Python 四种常见基础爬虫方法介绍

    一.Urllib方法 Urllib是python内置的HTTP请求库 import urllib.request #1.定位抓取的url url='http://www.baidu.com/' #2.向目标url发送请求 response=urllib.request.urlopen(url) #3.读取数据 data=response.read() # print(data) #打印出来的数据有ASCII码 print(data.decode('utf-8')) #decode将相应编码格式的

  • python列表去重的5种常见方法实例

    目录 前言 一.使用for循环实现列表去重 二.使用列表推导式去重 三.使用集合转换函数set()实现列表去重 四.使用新建字典方式实现列表去重 五.删除列表中存在重复的数据 附:Python 二维数组元素去重 np.unique()函数的使用 总结 前言 列表去重在python实际运用中,十分常见,也是最基础的重点知识. 以下总结了5种常见的列表去重方法 一.使用for循环实现列表去重 此方法去重后,原顺序保持不变. # for循环实现列表去重 list1 = ['a', 'b', 1, 3,

随机推荐