一、目的
通过使用matplotlib绘制掘金内容数据,增加matplotlib的熟练度
绘制单图
- x轴为周期,y轴为数据
- 设置每条数据的label
- 添加网格
- 修改x轴的刻度
- 添加描述
- 显示图例
- 保存图片
按单图的数据绘制多图
二、准备
引入库
这里使用的有matplotlib、random、pylab等 安装
pip install matplotlib
pip install pylab
设计步骤
- 首先准备数据,主要有日期数据,星期数据, 展现数据,阅读数据,点赞数据
- 其次了解matplotlib的使用流程
- 首先创建画布
- 然后绘制画布
- 之后添加网格
- 在之后修改x轴刻度
- 添加描述信息
- 显示图例
- 保存图片
- 图像显示
多样性
根据单图代码编写多图代码
三、代码实现流程
单图
导入依赖库
# 导入库
import matplotlib.pyplot as plt
import random
from pylab import mpl
设置中午字体
# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei']
# 设置正常显示的符号
mpl.rcParams['axes.unicode_minus'] = False
准备数据
# 准备数据
article_date = ["2022-05-02","2022-05-03","2022-05-04","2022-05-05","2022-05-06","2022-05-07","2022-05-08"]
article_view = [169,181,387,261,180,148,101]
article_digg = [16,9,10,28,10,-3,3,]
article_display = [909,948,1158,1445,1470,903,326]
day_list = ['一','二','三','四','五','六','日']
创建画布,该api有多个属性,figsize:两个参数分别是宽,高,dpi:以每英寸点数为单位的图形分辨率。 还有facecolor背景颜色,edgecolor边框颜色, frameon如果为 False,则禁止绘制图框
# 创建画布
plt.figure(figsize=(20,8),dpi=100)
绘制图像 plt.plot有多个属性:x,y, color, linestyle,label等等
# 绘制图像
plt.plot(article_date, article_display, color="r", linestyle='-.', label="展现数")
plt.plot(article_date, article_view, color="b", linestyle='-.', label="阅读数")
plt.plot(article_date, article_digg, color="g", linestyle='--', label="点赞数")
添加网格
grid的属性:是否可见,linestyle的样式,alpha设置透明度,还有颜色等属性
# 添加网格
plt.grid(True, linestyle='--', alpha=0.5)
修改x轴刻度
# 修改x轴刻度
x_day = ['星期{}'.format(i) for i in day_list]
plt.xticks(article_date[::1],x_day[::1])# 坐标刻度不能直接使用字符串进行修改
添加描述
# 添加描述
plt.xlabel('周期')
plt.ylabel('数量')
plt.title('掘金内容数据')
显示图例
legend有多种类型best 'center right' 'right'
等
# 显示图例
plt.legend(loc="best")
图像保存
savefig可以设置路径和图片名称
# 图像保存
plt.savefig('./contentDetail.png')
图像显示
# 图像显示
plt.show()
多图设置
数据相同
创建画布 subplots设置行列数据等
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(20,8), dpi=100)
绘制图像
axes[0].plot(article_date, article_display, color="r", linestyle='-.', label="展现数")
axes[1].plot(article_date, article_view, color="b", linestyle='-.', label="阅读数")
axes[2].plot(article_date, article_digg, color="g", linestyle='--', label="点赞数")
添加网格
axes[0].grid(True, linestyle='--', alpha=0.5)
axes[1].grid(True, linestyle='--', alpha=0.5)
axes[2].grid(True, linestyle='--', alpha=0.5)
修改刻度
x_day = ['星期{}'.format(i) for i in day_list]
axes[0].set_xticks(article_date[::1])# 坐标刻度不能直接使用字符串进行修改
axes[0].set_xticklabels(x_day[::1])# 坐标刻度不能直接使用字符串进行修改
axes[1].set_xticks(article_date[::1])# 坐标刻度不能直接使用字符串进行修改
axes[1].set_xticklabels(x_day[::1])# 坐标刻度不能直接使用字符串进行修改
axes[2].set_xticks(article_date[::1])# 坐标刻度不能直接使用字符串进行修改
axes[2].set_xticklabels(x_day[::1])# 坐标刻度不能直接使用字符串进行修改
添加描述
axes[0].set_xlabel('周期')
axes[0].set_ylabel('数量')
axes[0].set_title('展现数据')
axes[1].set_xlabel('周期')
axes[1].set_ylabel('数量')
axes[1].set_title('阅读数据')
axes[2].set_xlabel('周期')
axes[2].set_ylabel('数量')
axes[2].set_title('点赞数据')
显示图例
axes[0].legend(loc="best")
axes[1].legend(loc="best")
axes[2].legend(loc="best")
图像保存
plt.savefig('./contentDetail1.png')
图像显示
plt.show()
四、结果展示
单图多数据展示
多图单数据展示
图片保存结果
不足之处,请留言,望多多指点!!!