欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matplotlib画图

程序员文章站 2022-03-01 22:19:57
...
import matplotlib.pyplot as plt

# 绘图的三个步骤
# 创建画布 figsize 长宽大小 dpi图像的像素密度 默认100
plt.figure(figsize=(20,8),dpi=100)
# 绘制图像 分别为x和y坐标的列表
x = [i for i in range(0,20)]
y = [i for i in range(30,50)]
plt.plot(x,y)
# 添加描述信息
plt.xlabel('time')
plt.ylabel('temp')
plt.title('table')
# 添加坐标轴刻度
x_tick_label = ['11-{}'.format(i) for i in x]
plt.xticks(x[::5],x_tick_label[::5])
y_range = range(10,100)
# 绘制网格线 aplha是透明度
plt.grid(linestyle='--',alpha=0.8)
# 保存图像要在show之前 调用plt.show()以后 会自动把内存清空
plt.savefig('./test.png')
# 显示图像
plt.show()

绘制2个折线图在同一坐标系

plt.plot(x,y1,label = 'shanghai' )
plt.plot(x,y2,label  = 'beijing')
# 添加图例
plt.legend(loc = 'best')

多个坐标系显示

绘图区域要修改
import matplotlib.pyplot as plt

# 绘图的三个步骤
# 创建画布 figsize 长宽大小 dpi图像的像素密度 默认100
# plt.figure(figsize=(20,8),dpi=100)
# fig画布只有一个 ax是一个一行两列的数组
fig,ax = plt.subplots(nrows=1,ncols=2,figsize=(20,8))

# 绘制图像 分别为x和y坐标的列表
x = [i for i in range(0,20)]
y = [i for i in range(30,50)]

x2 = [i for i in range(30,40)]
y2 = [i for i in range(90,100)]
ax[0].plot(x,y,color='r')
ax[1].plot(x2,y2)
# 添加描述信息
ax[0].set_xlabel('time')
ax[0].set_ylabel('temp')
ax[0].set_title('table')

ax[1].set_xlabel('time')
ax[1].set_ylabel('temp')
ax[1].set_title('table')
# 添加坐标轴刻度
x_tick_label = ['11-{}'.format(i) for i in x]
ax[0].set_xticks(x[::5])
ax[0].set_xticklabels(x_tick_label[::5])

y_range = range(10,100)
# 绘制网格线 aplha是透明度
ax[0].grid(linestyle='--',alpha=0.8)
ax[1].grid(linestyle='--',alpha=0.8)
# 保存图像要在show之前 调用plt.show()以后 会自动把内存清空
plt.savefig('./test.png')
# 显示图像
plt.show()

绘制函数图像

# 创建数据 绘制函数图像的时候 要取足够多的点 才能看到光滑的曲线
x = np.linspace(-10,10,1000)
y = np.sin(x)

#创建画布
plt.figure(figsize=(20,8))
plt.plot(x,y)
plt.show()

常见图形种类及意义

折线图 体现变化趋势
plt.plot(x,y)

散点图
用两组数据构成多个坐标点  考察  坐标点的分布情况
判断两变量之间是否存在某种关联或总结坐标点的分布模式 还可以判断是否有异常点
plt.scatter(x,y)

柱状图
能够  一眼看出各个数据的大小 比较数据的差别
plt.bar(x,y,width,centre)

直方图
绘制连续性的数据 展示一组或多组数据的分布情况
横坐标是 最小值 - 最大值 的分布区间
eg: max = 10 min = 5 
x = [ 5,6,7,8,9,10 ]
然后统计数据落在各个区间的频率

matplotlib.pyplot.hist(x,bins=None)
bins:要分类的区间数量

饼图
分类数据的占比情况
plt.pie(x,labels=,autopct=,colors)
x:每一块的数量,自动算百分比
labels: 每部分名称
autopct:占比显示指定 %1.2f%%
colors: 每部分颜色