今天通过一个自制的微博关注人数、取关人数和净增人数
的表格,来讲解折线图如何绘制,数据表格截图如下:
第一步:导入常用的库,使用国际惯例
# 导入常用的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt # 绘图库
%matplotlib inline
import os # 获取当前路径
>>os.getcwd() # 用于输出当前路径
'D:\\Python\\datalearning\\matplotlib绘图'
第二步:解决中文乱码问题和读取表格
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 将文件读取出来,路径可以用:绝对路径或相对路径;
# r表示原始字符,不用于转义,保持字符原样
df = pd.read_excel(r"D:\\Python\\datalearning\\matplotlib绘图\\weibo.xlsx", )
df
部分截图:
image.png
第三步:去除为NaN数据行
# 删除表格中的NaN所在行
df.dropna(axis=0) # axis=0表示按行删除
第四步:绘制图形
# 设置图框的大小
fig = plt.figure(figsize=(8,4))
# 绘图
plt.plot(df['时间'], # x 轴数据
df['新关注人数'], # y轴数据
)
# 添加标题和坐标轴标签
plt.title("公众号新增用户")
plt.xlabel("日期")
plt.ylabel("新增人数")
# x轴标签旋转45度
fig.autofmt_xdate(rotation = 45)
# 显示图形
plt.show()
image.png
第五步:在一个figure中同时绘制不同的图形
# 设置图框的大小
fig = plt.figure(figsize=(8,4))
# 设置绘图风格:美化图片
plt.style.use("seaborn") # 此行代码一定要放在下面两行之前
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 绘图
plt.plot(df['时间'], # x 轴数据
df['新关注人数'], # x 轴数据
marker = 'o', # 点的形状
markersize = 5, # 点的大小
markerfacecolor = "mediumpurple" # 点的填充色
)
# 绘图
plt.plot(df['时间'], # x 轴数据
df['取关人数'], # y轴数据
marker = '*',
markersize = 5,
markerfacecolor = "orangered"
)
# 添加标题和坐标轴标签
plt.title("公众号新增用户")
plt.xlabel("日期")
plt.ylabel("新增人数")
# x轴标签旋转45度
fig.autofmt_xdate(rotation = 45)
# 显示图例
plt.legend()
# 显示图形
plt.show()
image.png
网友评论