目录
一、简单绘一条斜线
图形的基本构成
二、绘制城市温度折线图
1、解析画图过程
2、完整源代码
以下操作均在Jupter notebook中进行
导入模块:import matplotlib.pyplot
代码如下:
import matplotlib.pyplot as plt
plt.figure(figsize=(8,8), dpi=80)
plt.plot([1,2,3], [4,5,6])
plt.show()
plt.figure() — 实例一个图画对象
figsize=(高,宽) — 用来控制图像的大小
dpi — 图像清晰度,数值越大越清晰,不过使运行时间变长
plt.plot([……], [……]) — 画图操作,第一个列表是x轴,第二个列表是y轴
plt.show() — 将所画的图像展示出来
运行结果:
Scripting(脚本)
Artist(美工)
Backend (后端)
以模拟长沙和北京的天气为例 (y轴为温度,x轴为时间)
1、先导入即将使用的模块
import matplotlib.pyplot as plt
import random
2、设置字体
只有设置字体后才能在图形中显示字体
# 设置字体 , 这里设置为微雅黑
plt.rcParams['font.sans-serif'] = ['SimHei']
3、准备数据
通过:[random.uniform(x, y) for i in 60] 的方法,循环60次,每次从x到y的范围内获取一个随机小数
# 创建一个figure
plt.figure(figsize=(20,8), dpi=80)
# 准备数据
x = range(60)
y_Changsha = [random.uniform(15,18) for i in x]
y_Beijing = [random.uniform(10, 14) for i in x]
4、构造中文
# 构造中文
x_ch = ['11点{}分'.format(i) for i in x]
5、画出图像
注意:画图必须要在修改刻度和增加显示之前,否则可能会出现bug
plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')
color -- 设置线条颜色
linestyle -- 设置线条风格,linestyle='--' 表示线条为虚线
label -- 给线条设置标签,便于区分
# 画出图像,画图必须要在修改刻度和增加显示之前,否则可能会出现bug
plt.plot(x, y_Changsha, label="长沙")
plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')
6、修改刻度
修改x轴刻度:plt.xticks(刻度, 刻度名)
修改y轴刻度:plt.yticks(刻度, 刻度名)
一般刻度都是以数字出现,当刻度和刻度名一起出现时,就会将刻度名代替刻度上的数字。注意:刻度和刻度名的长度要相同。
当只设置刻度时,就会以数字出现比如 plt.yticks(range(60)[::5]) 隔五个取一个数,就成了0,5,10,……
# 修改x轴, y轴的刻度
y_ticks = range(40)
plt.xticks(x[::5], x_ch[::5], rotation=45)
plt.yticks(y_ticks[::5])
rotation -- 刻度的倾斜度,ratation=45表示刻度向下倾斜45度
7、增加标题、坐标说明、显示标签
坐标说明:
plt.xlabel(x轴坐标说明)
plt.ylabel(y轴坐标说明)
增加标题:
plt.title(标题内容)
显示标签:
plt.legend(loc="best"),设置显示标签前必须在画图(plt.plot())中设置标签,否则无法显示。
保存图片:
plt.savefig(),括号中是图片保存的路径,最后要给图片取名并加上后缀名:png或jpg
# 增加标题、坐标说明
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('长沙和北京的温度变化折线图')
plt.legend(loc="best")
# 保存图片
plt.savefig('城市温度折线图.png')
plt.show()
8、运行结果
9、在根目录下查看图片是否保存
import matplotlib.pyplot as plt
import random
# 设置字体 , 这里设置为微雅黑
plt.rcParams['font.sans-serif'] = ['SimHei']
# 创建一个figure
plt.figure(figsize=(20,8), dpi=80)
# 准备数据
x = range(60)
y_Changsha = [random.uniform(15,18) for i in x]
y_Beijing = [random.uniform(10, 14) for i in x]
# 构造中文
x_ch = ['11点{}分'.format(i) for i in x]
# 画出图像,画图必须要在修改刻度和增加显示之前,否则可能会出现bug
plt.plot(x, y_Changsha, label="长沙")
plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')
# 修改x轴, y轴的刻度
y_ticks = range(40)
plt.xticks(x[::5], x_ch[::5], rotation=45)
plt.yticks(y_ticks[::5])
# 增加标题、坐标说明
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('长沙和北京的温度变化折线图')
plt.legend(loc="best")
# 保存图片
plt.savefig('城市温度折线图.png')
plt.show()