02.Mabtplotlib

1.什么是Matplotlib

  • 是专门用于开发2D图表(包括3D图表)
  • 使用起来及其简单
  • 以渐进、交互式方式实现数据可视化

2.Matplotlib三层结构(拓展,了解)

2.1 容器层

容器层主要由Canvas、Figure、Axes组成。

Canvas 是位于最底层的系统层,在绘图的过程中充当画板的角色,即放置画布(Figure)的工具。

Figure 是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。
Axes 是应用层的第二层,在绘图的过程中相当于画布上的绘图区的角色。

​ -Figure:指整个图形(可以通过plt.figure0设置画布的大小和分辨率等)
​ -Axes(坐标系):数据的绘图区域
​ -Axis(坐标轴): 坐标系中的一条轴,包含大小限制、刻度和刻度标签

特点为:
一个figure(图像)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。

​ 一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系

2.2辅助显示层

辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括Axes外(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis abel)、坐标轴刻度(tick)、坐标轴刻度标签(ticklabel)、网格线(grid)、图例(legend)、标题(title)等内容。
该层的设置可使图像显示更加直观更加容易被用户理解,但又不会对图像产生实质的影响。

2.3图像层

图像层指Axes内通过plot、scatter、bar、histogram、pie等函数根据数据绘制出的图像。

3.绘图操作(折线图)

1.创建画布

import matplotlib.pyplot as plt
#plt.figure(figsize="画纸的大小",dpi=图形的分辨率,Facecolor=背景颜色,Edgecolor=边框颜色)
plt.figure(figsize=(20,8),dpi=100)	

2.绘制图像

x=[1,2,3]
y=[4,5,6]
plt.plot(x,y)    #绘制什么图像 plt.  就接什么

3.显示图像

plt.show()

4.保存图片到指定路径

#plt.savefig("保存路径")
plt.savefig("./test.png")
# 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

5.查看对象参数详细信息

#help(查看的函数(不加括号))
Eg:
help(plt.figure)

6.添加自定义下x,y刻度

  • plt.xticks(x,**kwargs)

x:要显示的刻度值

  • plt.yticks(y,**kwargs)

y: 要显示的刻度值

#构造x轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
#构造y轴刻度
y_ticks= range(40)

#修改下,y轴坐标的刻度显示
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])

# todo 在xticks和yticks中的参数第一个必须是数字

7.给画布添加网格显示

  • plt.grid(True,linestyle=‘–’,alpha=0.5)

    ​ linestyle----->添加的是虚线还是实线

    ​ alpha ------->透明度(1为不透明)

    plt.grid(True,linestyle='--',alpha=1)
    

8.添加描述

  • plt.xlabel(“描述”,fontsize=数字)

  • plt.ylabel(“描述”,fontsize=数字)

  • plt.title(“描述”,fontsize=数字)

    fontsize:是字体大小

plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("一小时温度变化图")

9.一个画布上显示多个图

直接再次创建y的一组数据,和再次plt.plot(x,y0)即可

10.显示图例

plt.legend(loc=‘best’)

Location StringLocation Code
‘best’0
‘upper right’1
‘upper left’2
‘lower left’3
‘lower right’4
‘right’5
‘center left’6
‘center right’7

注意:需要在显示之前,声明plot里面的具体值,Eg:plot(x,y,coclor=“r”,linestyle=‘–’,label=“线的对象即图例声明”

11.设置图形的风格

颜色字符风格字符
r 红色- 实线
g 绿色– 虚线
b 蓝色-. 点划线
w 白色: 点虚线
c 青色’ ’ 留空,空格
m 洋红
y 黄色
k 黑色

12.多个坐标系显示plt.subplots(面向对象的画图方法)

plt.subplots(3nrows = 1,ncols = 1,**fig_wk)
'''
创建一个带有多个axes(坐标系/绘图区)的图
【nrows,ncols】:设置有几行几列坐标系
返回图对象fig及相应数量的坐标系axes
'''


# 数据准备
x = range(45)
y_zhshu = [random.uniform(5, 15) for i in x]
y_ganzh = [random.uniform(10, 20) for i in x]
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 5), dpi=100)   # 创建画布
 
# 绘制图像
axes[0].plot(x, y_heilongjiang, color="g", linestyle=":",label="黑龙江")
axes[1].plot(x, y_jilin, color="r", linestyle="-.", label="吉林")
 
# 构造x,y轴刻度标签
x_ticks_label = ["{}:00".format(i) for i in x]
# y_ticks = range(40)
 
# 刻度显示
axes[0].set_xticks(x[::2])
# axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::2])
axes[1].set_xticks(x[::2])
# axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::2])
 
# 添加网格显示
axes[0].grid(True, linestyle="--", alpha=0.2)
axes[1].grid(True, linestyle="-.", alpha=0.5)
 
# 添加描述信息
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("24小时内樟树市温度变化图", fontsize=20)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("24小时内赣州市温度变化图", fontsize=14)
 
# 添加图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)
plt.savefig("./subplots.jpg")   # 图像保存
plt.show()   # 图像显示

记忆方法:

单个坐标系时可用plt.函数名()plt.subplots()两种方法都可以

plt.函数名()其实是面向过程的画图,而axes.set_方法名()是面向对象的画图两者的记忆函数名和方法名是一个参数函数。

13.常见图形种类的绘制及其意义

  • 散点图:

定义:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。

特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

plt.scatter(x,y)

Eg:
#准备数据
x = range(500)
y = random.uniform(10,500) for i in x
#创建画布
plt.figure(figsize=(20,8),bpi=100)
#绘制散点
plt.scatter(x,y)
#显示图像
plt.show()
  • 柱状图

定义:排列在工作表的列或者行中的数据可以绘制到柱状图中.

特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别.(统计/对比)

plt.bar(x,width,align='center',**kwargs)

'''
x : sequence of scalars.标量序列即变量的值
width: scalar or array-like , optional.柱状图的宽度
align : 可选(edge,center),默认为center,即在刻度的中心显示
color : 选择柱状图的颜色
'''

Eg:
#准备数据
name = ['数据一''数据二','数据三','数据四','数据五'......]
x = range(len(name))
y = [值一,值二,值三,值四,值五.....]
#创建画布
plt.figure(figsize=(20,8),dpi=100)
#绘制柱状图
plt.bar(x,y,width=0.5,corlor=['r','g','b','y'......])
#显示图像
plt.show()
  • 直方图

定义:由一系列高度不等的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据范围,纵轴表示分布情况.

特点:绘制连续性的数据展示一组或者多组数据分布状况(统计)

plt.hist(x,bins=None)
'''
x : 数据的值
bins : 组距
'''
  • 饼图

定义: 用于表示不同分类的占比情况,通过弧度大小来对比各种分类.

特点 : 分类数据的占比情况(占比)

plt.pie(x,labels=,autopct=,colors)
'''
x : 所有的数量值
labels:每个部分对应的名称
autopct:占比显示指定%1.2f%%
colors:每部分颜色
'''

更多学习内容可去官网学习:https://matplotlib.org/index.html


本人基本都是个人笔记,非常希望有大佬提出错误和改进之处,但大佬轻喷哈!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广寒学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值