Matplotlib数据可视化基础

Matplotlib首次发表于2007年,由于在函数设计上参考了MATLAB,其名字以“Mat”开头,中间的“plot”表示绘图这一作用,而结尾的“lib”则表示它是一个集合。近年来,Matplotlib在开源社区的推动下,在科学计算领域得到了广泛的应用,成为了Python中应用非常广泛的绘图工具包之一。

Matplotlib中应用最广的是matplotlib.pyplot模块。matplotlib.pyplot是一个命令风格函数的集合,是Matplotlib的机制更像MATLAB。每个绘图函数都可对图形进行一些更改,如创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在pyplot中,各种状态跨函数调用保存,以便跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数适中指向当前轴域。

1 绘图基础语法与常用参数

1.1 基本绘图流程

1.1.1 创建画布与创建子图

第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制

1.1.2 添加画布内容

第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。

1.1.3 保存与展示图形

第三部分主要用于保存和显示图形。

1.2 设置pyplot的动态rc参数

pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数。

在pyplot中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。

由于默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数。

plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示

plt.rcParams['axes.unicode_minus'] = False

2 散点图(分析特征间的相关关系)

散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。

值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据。

scatter函数:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)

常用参数及说明如下表所示:

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = 'SimHei' #正常显示中文

#==================1散点图scatter
x = np.arange(0, 1, 0.05)
y = x**2
y1 = x**4

#------------1.1绘制简单散点图--------------------
plt.scatter(x, y)
plt.show() #显示图形


#------------1.2丰富图形--------------------
plt.figure(figsize=(8, 6)) #设置画布大小

plt.scatter(x, y)
plt.title('散点图') #标题
plt.xlabel('x') #x轴标签
plt.ylabel('y') #y轴标签
plt.xlim(0.2, 0.6) #x轴刻度范围
plt.ylim(0, 0.4) #y轴刻度范围

plt.show() #显示图形

#------------1.3多图绘制--------------------
#第一步:设置画布和子图1
fig = plt.figure(figsize=(12, 8)) #设置画布大小
fig.add_subplot(1, 2, 1) #子图1
#第二步:绘制图形1
plt.scatter(x, y)
plt.title('y=x^2')

#第一步:设置子图2
fig.add_subplot(1, 2, 2) #子图2
#第二步:绘制图形2
plt.scatter(x, y1)
plt.title('y=x^4')

#第三步:显示图形
plt.show() #显示图形

#------------1.4多个函数绘制在一张图中--------------------
##其实就是不调用子图,就可以把多个函数绘制在同个图中
plt.scatter(x, y)
plt.scatter(x, y1)
plt.legend(['y=x^2', 'y=x^4']) #添加图例
plt.show()

3 折线图(分析特征间的趋势关系)

折线图(line chart)是一种将数据点按照顺序连接起来的图形。可以看作是将散点图,按照x轴坐标顺序连接起来的图形。

折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。

plot函数:

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

plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如下:

#==================2折线图plot
#------------2.1绘制简单折线图--------------------
plt.plot(x, y)
plt.show()


#------------2.2丰富图形--------------------
plt.plot(x, y, c='r', linestyle='--', marker='*') #c设置线条颜色。linestyle设置线条类型。marker设置点的类型 
plt.title('折线图') #标题
plt.xlabel('x') #x轴标签
plt.ylabel('y') #y轴标签
plt.show()

#------------2.3绘制多图:散点图和折线图--------------------
##第一步:设置画布与子图1
fig = plt.figure(figsize=(4, 8))
fig.add_subplot(2, 1, 1) #子图1
##第二步:绘制图形1(散点图)
plt.scatter(x, y)

#第一步:设置子图2
fig.add_subplot(2, 1, 2) #子图2
#第二步:绘制图形2(折线图)
plt.plot(x, y1)

##第三步:保存、显示图形(先保存后显示)
plt.savefig(r'F:\Desktop\a.png') #保存图形
plt.show()

4 直方图(分析特征内部数据的分布情况)

直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。

用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。

bar函数:

matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs

常用参数及说明如下表所示:

#==================3直方图bar
data = [100, 170, 160, 250, 150, 160, 120]
label = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']

plt.bar(range(len(data)), data)
plt.xticks(range(len(data)), label) #x轴刻度
plt.xlabel('星期') #x轴标签
plt.ylabel('销售额') #y轴标签
plt.title('本周销售额')
plt.show() #显示图形

5 饼图(分析特征内部数据分布情况)

饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。

饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。

pie函数:

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … )

常用参数及说明如下表所示:

#==================4饼图pie
#------------4.1绘制简单饼图--------------------
plt.pie(data)
plt.show()


#------------4.2丰富图形--------------------
plt.pie(data, labels=label, autopct='%.2f%%') #labels设置每一项名称。autopct设置指定数值的显示方式
plt.title('本周销售额饼图')
plt.show()

6 箱线图(分析特征内部数据的分散情况)

箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。

箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别可以用于对几个样本的比较。

boxplot函数:

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … )

常用参数及说明如下表所示:

#==================5箱线图boxplot
#------------5.1绘制简单箱线图--------------------
plt.boxplot(data)
plt.show()


#------------5.2将多个数据绘制成箱线图--------------------
data1 = [100, 170, 120, 200, 150, 160, 120]
plt.boxplot([data, data1])
plt.show()

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值