目录
文章目录
三、matplotlib概述
matplotlib是python的一个绘图库。使用它可以很方便的绘制出版质量级别的图形。通常用于数据可视化
数据可视化
数据可视化是指使用图形的方式展现数据的分布规律
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKqvPqsX-1638272061347)(./img/饼图示例.png)]
1. matplotlib基本功能
- 基本绘图 (在二维平面坐标系中绘制连续的线)
- 设置线型、线宽和颜色
- 设置坐标轴范围
- 设置坐标刻度
- 设置坐标轴
- 图例
- 特殊点
- 备注
- 图形对象(图形窗口)
- 子图
- 刻度定位器
- 刻度网格线
- 半对数坐标
- 散点图
- 填充
- 条形图
- 饼图
- 等高线图
- 热成像图
- 三维曲面
- 简单动画
官方文档: https://matplotlib.org/
官方中文文档: https://www.matplotlib.org.cn/
四、matplotlib基本功能详解
1. 基本绘图
1)绘图核心API
- 绘制水平线API
import matplotlib.pyplot as plt
plt.axhline(y=y轴位置 ...)
plt.hlines([y1, y2, y3, ...], # Y轴 位置
[x11, x21, x31, ...], # X 轴的起始位置
[x12, x22, x32, ...]) # X 轴的终止位置
- 绘制垂直竖线API
import matplotlib.pyplot as plt
plt.axvline(x=x轴位置, ...)
plt.vlines([x1, x2, x3, ...], # X轴 位置
[y11, y21, y31, ...], # Y 轴的起始位置
[y12, y22, y32, ...]) # Y 轴的终止位置
- 绘制折线API
import matplotlib.pyplot as plt
plt.plot(x坐标点(矢量), y坐标点(矢量), ...)
案例: 绘制简单直线
import numpy as np
import matplotlib.pyplot as plt
# 绘制水平线
plt.axhline(y=6, ls=":", c="blue") # 添加水平直线
# 绘制垂线
plt.axvline(x=4, ls="-", c="red") # 添加垂直直线
# 绘制多段垂线
plt.vlines([2, 3, 3.5], # 垂线的x坐标值
[10, 20, 30], # 每条垂线起始y坐标
[25, 35, 45]) # 每条垂线结束y坐标
# 绘制简单直线
x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 2, 9, 8, 15])
plt.plot(x, y)
plt.savefig('mypic.png') # 保存图片为PNG 图片
plt.show() # 显示图片,阻塞方法
执行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Byf22lb-1638272061348)(./img/直线.png)]
2)设置线条属性( 线型、线宽…)
-
用来标识线性的关键字参数
-
linestyle、ls:
设置线型
- 符号字符串:常见取值有实线(’-’)、虚线(’–’)、点虚线(’-.’)、点线(’:’)
- 线型名字字符串,如:‘solid’, ‘dotted’, ‘dashed’, ‘dashpot’
- 元组:如(0, (1, 5))
具体线型见下表
-
linewidth、lw:线宽数字
-
color、c颜色:
- 颜色字符串,如: ‘red’, ‘dodgerblue’; 详见下表《颜色标记字符串》
- RGB 格式的字符串#RRGGBB, 如 ‘#CE50B3’或#RRGGBBAA 如:’#FF888840’
- RGB颜色的列表(red, blue, green), 如(0.3, 1.0, 0.5, 0.5)
-
alpha: 设置透明度(0~1之间)
-
案例:绘制正弦、余弦曲线,并设置线型、线宽、颜色、透明度
# 绘制正弦曲线
import numpy as np
import matplotlib.pyplot as plt
import math
x = np.arange(0, 2 * np.pi, 0.1) # 以0.1为单位,生成0~6的数据
print(x)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制图形
plt.plot(x, y1, label="sin", linewidth=2) # 实线,线宽2像素
plt.plot(x, y2, label="cos", linestyle="--", linewidth=4) # 虚线,线宽4像素
plt.xlabel("x") # x轴文字
plt.ylabel("y") # y轴文字
# 设置坐标轴范围
plt.xlim(0, 2 * math.pi)
plt.ylim(-1, 2)
plt.title("sin & cos") # 图标题
plt.legend() # 图例
plt.show()
执行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmXKxS3E-1638272061349)(./img/sin_cos曲线.png)]
- 线型表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHDASXNK-1638272061349)(./img/line_style.png)]
- 颜色标记字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmJdLqd4-1638272061350)(./img/matplotlib_colors.png)]
3)设置坐标轴范围
语法:
#x_limt_min: <float> x轴范围最小值
#x_limit_max: <float> x轴范围最大值
plt.xlim(x_limt_min, x_limit_max)
#y_limt_min: <float> y轴范围最小值
#y_limit_max: <float> y轴范围最大值
plt.ylim(y_limt_min, y_limit_max)
4)设置坐标刻度
语法:
# 设置 x 轴 刻度
plt.xticks(
ticks=None, # x轴刻度值序列
labels=None, # x轴刻度标签文本序列
rotation=0 # 刻度旋转角度
)
# 设置 y 轴 刻度
plt.yticks(
ticks=None, # y轴刻度值序列
labels=None, # y轴刻度标签文本序列
rotation=0 # 刻度旋转角度
)
5) 设置坐标文字
语法
# 设置x轴文字
plt.xlabel("x轴文字", fontsize=字体大小)
# 设置y轴文字
plt.ylabel("y轴文字", fontsize=字体大小)
案例:绘制二次函数曲线
# 绘制二次函数曲线
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5, 5, 0.1) # 以0.1为单位,生成-5~5的数据
y = x ** 2
# 绘制图形
plt.plot(x, y, label="$y = x^2$",
linewidth=2, # 线宽2像素
color="red", # 颜色
alpha=0.5) # 透明度
plt.xlabel("x") # x轴文字
plt.ylabel("y") # y轴文字
# 设置坐标轴范围
plt.xlim(-10, 10)
plt.ylim(-1, 30)
# 设置刻度
plt.title("square") # 图标题
plt.legend(loc="upper right") # 图例 upper right, center
plt.show()
执行:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AX5MaWgB-1638272061350)(./img/一元二次曲线.png)]
刻度文本的特殊语法 – LaTex排版语法字符串
r'$x^n+y^n=z^n$', r'$\int\frac{1}{x} dx = \ln |x| + C$', r'$-\frac{\pi}{2}$'
x n + y n = z n , ∫ 1 x d x = ln ∣ x ∣ + C , − π 2 x^n+y^n=z^n, \int\frac{1}{x} dx = \ln |x| + C, - \frac{\pi}{2} xn+yn=zn,∫x1dx=ln∣x∣+C,−