依赖
import matplotlib.pyplot as plt
绘制
plt.figure()
#创建画布
#------设置画布-------
#plt.figure(figsize=(,),dpi=)
plt.plot([1,2,3,4,5,6,7],[70,80,68,56,45,34,23])
#绘制图像,数组1/2分别为X/Y轴
plt.savefig("new_plot.png")
#save图像,只输入字符时保存于当前路径
plt.show()
#显示图像

tip:设置画布应与创建画布一体,在show之后图像将置空,所以保存图片应在show之前,否则会输出空画布
辅助绘制
import matplotlib.pyplot as plt
import random
x = range(24)
#生成1-20的数组x
y1 = [random.uniform(12,24) for i in x]
#生成x个均匀分布在12和24之间的数值集y1
plt.figure()
plt.plot(x,y1)
plt.show()#输出

均匀分布:np.randon.uniform(min,max,size),所有的随机值出现概率是一样的
- 刻度显示修正
plt.xticks(range(24)[::4])
#plt.xticks(range(0,24,5))
#修正X刻度的显示范围(0-24)与步长(5)
plt.yticks(range(0,24,4))
str = ["{}H".format(i)for i in x]
#生成一组刻度
plt.xticks(range(24)[::4],str[::4])
#x的步长与代替刻度的步长必须相同

- 图像中文输出修正(win略)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False
# 步骤二(解决坐标轴负数的负号显示问题)
安装含有中文的字体(例黑体),删除matplotlib的缓存
window:
- 添加网格与描述
plt.grid(True,linestyle = "--",alpha = 0.5)
#网格设置,可以不加True,alpha为透明度
plt.xlabel("day_time")
plt.ylabel("°C")
plt.title("a table")
#添加x,y轴的描述

多个折线
再次用plot就可以绘制第二条折线,会自动分配颜色
y2 = [random.uniform(1,10)for i in x]
plt.plot(x,y2,...)
#color = r/b,linestyle = "--"#label="nanjing"图例预示
plt.legend()
#启用图例
plt.legend(|Location Code|)
#改位置Location Code = 0-6

多个绘图区(子图)在同一画布
实现matplotlib.pyplot.subplots,返回图对象fig和绘图区ax,plt.相当于面向过程的画图方法,axes.set_相当于面向对象的画图方法
import matplotlib.pyplot as plt
import numpy as np
import random
x = np.arange(1,24)
y1 = [random.uniform(12,24) for i in x]
y2 = [random.uniform(4,10) for j in x]
fig,a = plt.subplots(1,2)
a[0].plot(x,y1)
a[1].plot(x,y2)
a[0].set_title("第一个")
a[1].set_title("第二个")
plt.show()
显示和单绘图还是有一定的区别
