Python中Matplotlib的详细操作介绍


author:xiao黄
缓慢而坚定的生长


写这篇文章是因为自己以后肯定要用到 这方面的知识,所以把一些学到的知识先整理好,方便以后查看,以及希望对你们有所帮助。

1.基本内容

Matplotlib 是一个 Python 的 2D(包括3D)绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

2.安装

使用python安装

pip install matplotlib

或者使用anaconda安装

conda install matplotlib

3.Matplotlib三层结构

一般导入包的时候将matplotlib.pyplot as plt

import matplotlib.pyplot as plt
  1. 容器层
    1画板层(canvas)
    2画布层(Figure):plt.figure()
    3绘图区/坐标系axex:plt.subplots()
  2. 辅助显示层
  3. 图像层

4.设置图属性以及图片保存

plt.figure(figsize=(), dpi=)
	figsize:指图片的长宽
	dpi:图像的清晰度
	返回fig图像
# 例子
plt.figure(figsize=(20,8), dpi=80)

# 图片保存
plt.savefig(path) # path 为保存的路径,自定义

注意:plt.show()会释放资源,如果在显示图像之后保存图片将只保存空图片。

4.1例子

import matplotlib.pyplot as plt 

# 例子1
plt.figure() # 创建一个空图
plt.plot([1,0,9],[4,5,6]) # 横纵坐标
plt.show() # 展示

结果:
在这里插入图片描述

5.自定义x,y刻度

  • plt.xticks(x, **kwargs)
    x:要显示的刻度值
  • plt.yticks(y, **kwargs)
    y:要显示的刻度值

6.添加网格显示

plt.grid(True, linestyle='--', alpha=0.5)
# alpha 透明度

7.添加描述信息

# 添加x轴,y轴描述以及标题
plt.xlabel('time')
plt.ylabel('temperature')
plt.title('Schematic diagram of temperature changes between 11 and 12 noon in Shanghai and Beijing')

8.设置图形风格

在这里插入图片描述

9.显示图例

plt.legend()

可以调节图例的位置,一般使用下面这个:

plt.legend(loc='best')

下面列出一些,还有的可以参考官方文档:
在这里插入图片描述

10.在同一个图显示多个曲线

代码已经的注释已经很清楚了,还有不懂的欢迎留言或者私信。

# 例子3 在同一个图显示
import matplotlib.pyplot as plt 
import random

x = range(60)
y = [random.uniform(15,18) for i in x] # 假设是上海
z = [random.uniform(0,3) for i in x] # 假设是北京
plt.figure(figsize=(20,8), dpi=80) # 图片大小,清晰度

plt.plot(x,y, color='r', linestyle='--', label='Shanghai') # 可以修改颜色、线条风格、图例
plt.plot(x,z, color='b', label='Beijing')

plt.legend() # 显示图例

x_label = ['11:{}'.format(i) for i in x]
plt.xticks(x[::5],x_label[::5]) # 修改x的刻度
plt.yticks(range(0,40,5)) # 修改y的刻度

# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)

# 添加x,y轴描述信息及标题
plt.xlabel('time')
plt.ylabel('temperature')
plt.title('Schematic diagram of temperature changes between 11 and 12 noon in Shanghai and Beijing')

plt.show()

结果显示:
在这里插入图片描述

11.一个界面显示多个图

主要是用到plt.subplots()函数,它返回两个对象,分别是figure和axes。
通过对axes画对应的坐标轴。

plt.subplots(nrows=1,ncols=2) # 一行两列

具体代码如下:

# 例子4 在不同的图显示
import matplotlib.pyplot as plt 
import random

x = range(60)
y = [random.uniform(15,18) for i in x] # 假设是上海
z = [random.uniform(0,3) for i in x] # 假设是北京

# 创建画布
figure,axes = plt.subplots(nrows=1,ncols=2, figsize=(20,8), dpi=80)

# 绘图
axes[0].plot(x,y, color='r', linestyle='--', label='Shanghai') # 可以修改颜色、线条风格、图例
axes[1].plot(x,z, color='b', label='Beijing')

# 显示图例
axes[0].legend()
axes[1].legend()

# 修改刻度
x_label = ['11:{}'.format(i) for i in x]
axes[0].set_xticks(x[::5]) # 修改x的刻度
axes[0].set_xticklabels(x_label[::5])
axes[0].set_yticks(range(0,40,5)) # 修改y的刻度
axes[1].set_xticks(x[::5]) # 修改x的刻度
axes[1].set_xticklabels(x_label[::5])
axes[1].set_yticks(range(0,40,5)) # 修改y的刻度

# 增加网格显示
axes[0].grid(True, linestyle='--', alpha=0.5)
axes[1].grid(True, linestyle='--', alpha=0.5)

# 添加描述信息
axes[0].set_xlabel('time')
axes[0].set_ylabel('temperature')
axes[0].set_title('Schematic diagram of temperature changes between 11 and 12 noon in Shanghai')
axes[1].set_xlabel('time')
axes[1].set_ylabel('temperature')
axes[1].set_title('Schematic diagram of temperature changes between 11 and 12 noon in Beijing')

# 显示图片
plt.show()

结果显示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xiao黄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值