Matplotlib简介
能将数据进行可视化,更直观呈现。使数据更客观,更具说服力。
建立第一章Matplotlib数据表
1、导入Matplotlib库
from matplotlib import pyplot as plt
2、给出所需的数据
两个列表类型的数据,元素的个数要一一对应。
x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
3、绘图
pyplot.plot(dataList0 , dataList1)
dataList0:0轴数据,列表类型
dataList1:1轴数据,列表类型
plt.plot(x,y)
4、显示数据图(运行时)
plt.show()
设置图片大小和清晰度
pyplot.figure(figsize=(width,height) , dpi = num)
figsize:数据表尺寸,单位英寸
dpi:每英寸有多少像素点,代表清晰度
pyplot.figure()需要在绘图前执行
plt.figure(figsize=(20,8),dpi=80)
# 绘图
plt.plot(x,y)
设置轴的刻度
pyplot.xtick(dataList , showList , rotation = num) / pyplot.ystick(dataList , showList , rotation = num)
dataList:列表类型数据,表示每个刻度代表的值
showList:列表类型数据,表示每个刻度显示的内容,可以是字符串
rotation:显示内容旋转度数
x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
plt.xticks(x) # 将x中的数据作为x轴的刻度
plt.yticks(range(min(y),max(y)+1))
保存数据表到本地
pyplot.savefig(pathStr)
pathStr:保存路径,字符串类型
# 可以保存为svg矢量图格式
plt.savefig("./dataPNG.png")
实例:绘制10点到12点的气温变化,使用随机数
import random
from matplotlib import pyplot as plt
def minsToTime(minList):
resList = []
for item in minList:
if item >= 60:
data = item - 60
if data<10:
resList.append("11:0{}".format(data))
else:
resList.append("11:{}".format(data))
else:
data = item
if data<10:
resList.append("10:0{}".format(data))
else:
resList.append("10:{}".format(data))
return resList
# 两小时内每分钟的气温数据
a = [random.randint(20,35) for i in range(120)]
x = range(0,120)
# plt.figure(figsize=(20,8))
plt.plot(x,a)
_x = list(x)[::10]
# 将x列表的数据设置步长为10返回新列表_x,用作坐标刻度
xtickLabel = minsToTime(_x)
# 自定义函数:将第几分钟转换为时间格式,作为横坐标
plt.xticks(_x,xtickLabel,rotation=90)
# 设置横坐标刻度 _x与xtickLabel两个列表要一一对应
# rotation 刻度的旋转度数,防止重叠
plt.show()