安装
创建虚拟环境,
pip3 install -i https://pypi.doubanio.com/simple/ matplotlib
1、初始用
关键词:plot、show
from matplotlib import pyplot as plt
# 数据在x轴的位置,是一个可迭代的对象
x = range(2, 26, 2)
# 数据在y轴的位置,是一个可迭代的对象
y = [6, 5, 8, 4, 1, 1, 6, 2, 8, 5, 8, 7]
# 在图中的则表示为(2,6),(4,5),(6,8)....(24,7)
# 传入x,y,绘制出图像
plt.plot(x, y)
# 显示出图像
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fMhTEhAa-1659800228729)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806170323271.png)]
2、设置图片大小、调整刻度
关键词:figure、xticks、yticks、savefig
from matplotlib import pyplot as plt
# 设置图片大小
# figure是图片图标的意思,这里指我们绘制的图
# dpi则是在屏幕上的分辨率
fig = plt.figure(figsize=(20, 8), dpi=80)
x = range(2, 26, 2)
y = [6, 5, 8, 4, 1, 1, 6, 2, 8, 5, 8, 7]
# 绘制图片
plt.plot(x, y)
# 设置刻度
plt.xticks(x) # x Axis的刻度
# plt.xticks(x[::2]) # 当x轴比较稀疏时,可以设置步长进行显示(间隔取值)
plt.yticks(range(min(y), max(y)+1)) # y Axis的刻度
# 保存图片,在图片绘制之后才能保存,不然是空白
plt.savefig('./img/figure_size.png')
# 展示图片
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mYmUJCka-1659800228732)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806173403979.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UbGEFJdG-1659800228733)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806173413010.png)]
3、坐标轴显示字符串、改变文字角度
import random
from matplotlib import pyplot as plt
'''
中文字体 说明
‘SimHei’ 中文黑体
‘Kaiti’ 中文楷体
‘LiSu’ 中文隶书
‘FangSong’ 中文仿宋
‘YouYuan’ 中文幼圆
'STSong' 华文宋体
'''
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 设置图片大小
# figure是图片图标的意思,这里指我们绘制的图
# dpi则是在屏幕上的分辨率
fig = plt.figure(figsize=(16, 8), dpi=80)
x = range(0, 120)
y = [random.randint(20, 38) for i in range(120)]
# 绘制图片
plt.plot(x, y)
# 调整x轴刻度
_xticks_labelz = ['10点{}分'.format(i) for i in range(60)]
_xticks_labelz += ['11点{}分'.format(i) for i in range(60)]
# 去步长,数字和字符串的个数一一对应,数据的长度一样
plt.xticks(list(x)[::3], _xticks_labelz[::3], rotation=45) # rotation设置旋转多少度
# 展示图片
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okc5MJKT-1659800228740)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806211154992.png)]
中文字体 | 说明 |
---|---|
‘SimHei’ | 中文黑体 |
‘Kaiti’ | 中文楷体 |
‘LiSu’ | 中文隶书 |
‘FangSong’ | 中文仿宋 |
‘YouYuan’ | 中文幼圆 |
STSong | 华文宋体 |
4、设置图形x、y、标题的信息
import random
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 设置图片大小
# figure是图片图标的意思,这里指我们绘制的图
# dpi则是在屏幕上的分辨率
fig = plt.figure(figsize=(14, 8), dpi=80)
x = range(0, 121)
y = [random.randint(20, 38) for i in range(121)]
# 绘制图片
plt.plot(x, y)
# 调整x轴刻度
_xticks_labelz = ['10点{}分'.format(i) for i in range(60)]
_xticks_labelz += ['11点{}分'.format(i) for i in range(61)]
# 去步长,数字和字符串的个数一一对应,数据的长度一样
plt.xticks(list(x)[::3], _xticks_labelz[::3], rotation=45) # rotation设置旋转多少度
plt.xlabel('时间') # 设置x轴名称
plt.ylabel('温度 单位(℃)') # 设置y轴名称
plt.title('10点到12点气温变化图') # 设置标题名称
# 展示图片
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPjQRjAl-1659800228741)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806212821618.png)]
5、设置线型、颜色、网格、图例、透明度
import random
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
x = range(11, 31)
y_1 = [random.randint(1, 10) for i in range(11, 31)] # 自己的女朋友个数
y_2 = [random.randint(1, 10) for j in range(11, 31)] # 同桌的女朋友个数
plt.figure(figsize=(12, 8), dpi=80)
plt.plot(x, y_1, label='自己', color='orange', linestyle=':', linewidth=5,alpha=0.8) # 设置图例名、线条颜色、线型、宽度
plt.plot(x, y_2, label='同桌', color='#4B0082', linestyle='--') # 设置图例名、十六进制颜色
_yticks_label = ['{}个'.format(i) for i in range(1, 11)]
_xticks_label = ['{}岁'.format(i) for i in x]
plt.xticks(list(x)[::1], _xticks_label[::1]) # 设置x轴显示字符串
plt.yticks(list(range(1, 11))[::1], _yticks_label[::1]) # 设置y轴显示字符串
# 显示网格
plt.grid(alpha=0.4, linestyle='-.')
# 添加图例名
plt.legend(loc=3)
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qPuH2oo0-1659800228742)(E:/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/matplotlib.assets/image-20220806231327953.png)]
风格字符 |
---|
- 实线 |
– 虚线 |
-. 点划线 |
: 点虚线,虚线 |
’ ’ 留空/空格,无线条 |
图例位置:
local | code |
---|---|
best | 0 |
upper right | 1 |
upper left | 2 |
lower left | 3 |
lower right | 4 |
right | 5 |
center left | 6 |
center right | 7 |
lower center | 8 |
upper center | 9 |
center | 10 |
小结一下: