Matplotlib库简介

一、Matplotlib绘制图形

我们已经学习过了 NumPy 的统计分析,数据的各项指标都可以以真实的数据提供出来, 有的同学可能有疑问?

我们为什么要进行可视化?而可视化在数据分析中又占什么样的地位?我们之前大致说过,可视化可以将我们的数据更加直观的表现出来,方便我们得到数据分析的结论,那么还有什么作用吗?那么我们一起来一下这一组数据

观察上面这一组数据,并没有发现什么规律,但是我们可以对其进行统计指标计算,来得到:

而观察统计指标中的均值、标准差,会发现整个的 x_ *、y __ * 数据的均值、标准差都是 基本一样的,那么到底可不可以得到,整个 x_ * 数据的规律是一样的?整个 y_ * 数据的规律 是一样的?

那么我们对该数据进行可视化,来绘制图形来查看该数据的分布情况,会发现:

而观察数据的分布散点,可以得到:该数据的分布规律并不相同。那么根据指标所得到 的规律只是显示着该数据的某些指标相同,但是真实的规律还得需要图形的支撑,不然不足 以提供强大的说服力

那么到底如何实现图像可视化?接下来我们一起来学习 Matplotlib 可视化库

二、Matplotlib 数据可视化基础

对 Matplotlib 认识

Matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

Matplotlib 绘图流程

1、创建画布与创建子图

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

函数名称 函数作用
plt.figure 创建一个空白画布,可以指定画布大小,像素
figure.add_subplot 创建并选中子图,可以指定子图的行数,列数,与选中图片编号
plt.subplots_adjust 调整子图之间的间距,wspace 为调整宽度,hspace 为调整高度

2、添加画布内容

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

函数名称 函数作用
plt.title 在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数
plt.xlabel 在当前图形中添加 x 轴名称,可以指定位置、颜色、字体大小等参数
plt.ylabel 在当前图形中添加 y 轴名称,可以指定位置、颜色、字体大小等参数
plt.xlim 指定当前图形 x 轴的范围,只能确定一个数值区间,而无法使用字符串标识
plt.ylim 指定当前图形 y 轴的范围,只能确定一个数值区间,而无法使用字符串标识
plt.xticks 指定 x 轴刻度的数目与取值
plt.yticks 指定 y 轴刻度的数目与取值
plt.legend 指定当前图形的图例,可以指定图例的大小、位置、标签

3、存与展示图形

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

函数名称 函数作用
plt.savafig 保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数
plt.show 在本机显示图形

现在人们对于旅游、出行越来越热衷,一旦出现周末、小假期,基本都会出行旅游,所以对于天气的依赖越来越重要,以 xx 城市下一周天气温度走势为例,来理解绘图三部曲, 以下为某城市下一周天气

温度表:

​ 某城市下一周天气温度表

日期 周一 周二 周三 周四 周五 周六 周日
xx 城市天气温度(℃) 15 20 22 23 20 18 16

以下为绘制出的效果图:

代码实现:

# 导包
import matplotlib.pyplot as plt
import numpy as np

# 1、创建画布
# figsize : 画布大小,元组形式,可以给定画布的宽、高
# dpi :像素大小
# 返回值:画布对象
plt.figure()

# 2、绘图及修饰
# 以下一周某城市的天气温度走势 来理解绘图流程
# 折线图
# 折线图 ---要素:点  --->坐标(x,y)
# (x1,y1) (x2,y2) ...(xn,yn) ---n个点的坐标
# 注意:在绘制折线图时,要求单独传入横坐标、纵坐标,绘制的时候会一一对应
#  准备 横轴数组 ---周一、周二、....、周日
# 注意:如果横轴为中文,绘制的时候,需要用序号来代替中文,后续再替换过来
x = np.arange(1, 8)
#  准备 纵轴数组
y = np.array([15, 20, 22, 23, 20, 18, 16])

# 绘制折线图
plt.plot(x, y)

# 3、图形展示
plt.show()
三、折线图绘制

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

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

可以使用 plt.pyplot 绘制折线图

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

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

如下:

参数名称 说明
x,y 接收 array,表示 x 轴和 y 轴对应的数据。无默认
color 接收特定 string,指定线条的颜色。默认为 None
linestyle 接收特定 string。指定线条类型,默认为“-“
marker 接收特定 string。表示绘制的点的类型。默认为 None
alpha 接收 0-1 的小数。表示点的透明度。默认为 None

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

1、线条的常用参数的取值:

rc参数名称 解释 取值
lines.linewidth 线条宽度 取 0-10 之间的数值,默认为 1.5
lines.linestyle 线条样式 可取“-”,“–”,“-.”,“:”四种,默认为“-”
lines.marker 线条上点的形状 可取“o”,“D”,“h”,“.”,“,” ,“S”等 20 种,默认为 None
lines.markersize 点的大小 取 0-10 之间的数值,默认为 1

2、常用线条样式解释:

linestyle 取值 意义
- 实线
长虚线
-. 点线
: 短虚线

3、点的样式解释:

marker 取值 意义
‘o’ 圆圈
‘D’ 菱形
‘h’ 六边形 1
‘H’ 六边形 2
‘-’ 水平线
‘8’ 八边形
‘p’ 五边形
‘,’ 像素
‘+’ 加号
‘None’
‘.’
‘s’ 正方形
‘*’ 星号
‘d’ 小菱形
‘v’ 一角朝下的三角形
‘<’ 一角朝左的三角形
‘>’ 一角朝右的三角形
‘^’ 一角朝上的三角形
‘\’ 竖线
‘x’ X

4、常用颜色说明

颜色缩写 代表的颜色
b 蓝色
g 绿色
r 红色
c 青色
m 品红
y 黄色
k 黑色
w 白色

另外需要注意:

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

支持中文代码示例:

# 默认不支持中文 ---修改RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
# 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
plt.rcParams['axes.unicode_minus'] = False

如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数

代码示例:

# 颜色对照表
# https://tool.oschina.net/commons?type=3
# 如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数
# x轴字体颜色
plt.rcParams['xtick.color'] = '#FFFFFF'

# y轴字体颜色
plt.rcParams['ytick.color'] = '#FFFFFF'

# 背景颜色
plt.rcParams['axes.facecolor'] = '#0D0434'

# 边框颜色
plt.rcParams['axes.edgecolor'] = '#FFFFFF'

# 保存的画布的颜色
plt.rcParams['savefig.facecolor'] = '#0D0434'

更多设置可查看:matplotlibrc 文件

以 xx 城市、yy 城市下一周天气温度走势为例,绘制折线图,以下为 xx 城市、yy 城市

下一周天气温度表:

​ xx 城市和 yy 城市下一周天气温度表

日期 周一 周二 周三 周四 周五 周六 周日
xx 城市天气温度(℃) 15 20 22 23 20 18 16
yy 城市天 气温度(℃) -10 -8 -12 -10 -8 -6 -1

以下为绘制出的效果图:

代码实现:

# 导包
import matplotlib.pyplot as plt
import numpy as np

# 1、创建画布
# figsize : 画布大小,元组形式,可以给定画布的宽、高
# dpi :像素大小
# 返回值:画布对象
plt.figure()
# 默认不支持中文 ---修改RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
# 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
plt.rcParams['axes.unicode_minus'] = False

# 如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数
# x轴字体颜色
plt.rcParams['xtick.color'] = '#FFFFFF'

# y轴字体颜色
plt.rcParams['ytick.color'] = '#FFFFFF'

# 背景颜色
plt.rcParams['axes.facecolor'] = '#045332'

# 边框颜色
plt.rcParams['axes.edgecolor'] = '#FFFFFF'

# 保存的画布的颜色
plt.rcParams['savefig.facecolor'] = '#0D0434'

# 2、绘图及修饰
# 以下一周某城市的天气温度走势 来理解绘图流程
# 折线图
# 折线图 ---要素:点  --->坐标(x,y)
# (x1,y1) (x2,y2) ...(xn,yn) ---n个点的坐标
# 注意:在绘制折线图时,要求单独传入横坐标、纵坐标,绘制的时候会一一对应
#  准备 横轴数组 ---周一、周二、....、周日
# 注意:如果横轴为中文,绘制的时候,需要用序号来代替中文,后续再替换过来
x = np.arange(1, 8)
#  准备 纵轴数组
y1 = np.array([15, 20, 22, 23, 20, 18, 16])

y2 = np.array([-10, -8, -12, -10, -8, -6, 1]
  • 15
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Python的Scipy之前,需要先导入一些基础的模块,如numpy、scipy、matplotlib等。可以使用以下代码导入这些模块: import numpy as np import scipy as sp import matplotlib as mpl import matplotlib.pyplot as plt 如果需要安装最新版本的numpy和scipy,可以使用pip命令进行安装。例如,可以使用以下命令安装numpy版本1.15.0rc1和scipy版本0.19.1: pip install numpy-1.15.0rc1 pip install scipy==0.19.1 在使用Scipy进行线性代数计算时,需要导入一些特定的模块。例如,可以使用以下代码导入numpy和scipy的线性代数模块: import numpy as np import numpy.linalg import scipy as sp import scipy.linalg import matplotlib.pyplot as plt from scipy import linalg 通过以上步骤,你就可以开始使用Python的Scipy进行各种科学计算和数据分析任务了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python之scipy详解](https://blog.csdn.net/RosebudTT/article/details/105979939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Py之Scipy:Scipy(高级科学计算)的简介、安装、使用方法之详细攻略](https://blog.csdn.net/qq_41185868/article/details/79682406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值