python:matplolib数据可视化--折线图

折线图主要看内容随着时间变化的趋势
import pandas as pd
import matplotlib.pyplot as plt

#让中文和负号的正常显示
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
plt.rcParams[‘axes.unicode_minus’]=False

#读取需要绘图的数据
df = pd.read_excel(r’E:\数据分析小灶\小灶商业数据分析LV1等多个文件等多个文件\小灶商业数据分析LV1等多个文件\小灶商业数据分析LV2\模块3 :数据概述与数据可视化\16第7课:Matplotlib学习之数据可视化\16-08user_analysis.xlsx’)

df #这个是呈现数据 NAT时间维度上的空值 NAN除了时间之外的所有空值
python:matplolib数据可视化--折线图

df.dropna(axis=0) #去除空值行
python:matplolib数据可视化--折线图
绘图
#设置图框的大小
fig=plt.figure(figsize=(8,4))
#绘图
plt.plot(df[‘时间’], #x轴数据
df[‘新关注人数’] #y轴数据
)

#添加标题和坐标轴标签
plt.title(‘公众号日增人数’)
plt.xlabel(‘日期’)
plt.ylabel(‘新增人数’)

#y轴文字的倾斜度
fig.autofmt_xdate(rotation=45)

#显示图形
plt.show()

python:matplolib数据可视化--折线图

在一张图上画多个折线图
#设置图框的大小
fig=plt.figure(figsize=(8,4))

#设置seaborn绘图风格,可在matplolib中直接调取风格
plt.style.use(‘seaborn’)

plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

#一张图上画多个折线图
plt.plot(
df[‘新关注人数’],#y轴数据
label=‘新关注人数’,
marker = ‘o’, #点的形状
markersize=5, #点的大小
markerfacecolor = ‘mediumpurple’ # 点的填充色
)
plt.plot(
df[‘取消关注人数’],#y轴数据
label=‘取消关注人数’,
marker = ‘o’, #点的形状
markersize=5, #点的大小
markerfacecolor = ‘orangered’ #点的填充色
)

#添加标题和坐标轴标签
plt.title(‘公众号日增人数’)
plt.xlabel(‘日期’)
plt.ylabel(‘新增人数’)

#y轴文字的倾斜度
fig.autofmt_xdate(rotation=45)

#显示图例
plt.legend()

#显示图形
plt.show()

python:matplolib数据可视化--折线图
结论:相比新关注人数,取消关注的人数波动较小

顺便一提,出现一个bug
no handles with labels found to put in legend怎么办
对策就是分别在plt.plot里面添加 label=‘xx’
比如这次 label=‘取消关注人数’,

#设置图框的大小
fig=plt.figure(figsize=(8,4))

#设置seaborn绘图风格,可在matplolib中直接调取风格
plt.style.use(‘seaborn’)
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

#绘图
plt.plot(
df[‘新关注人数’],#y轴数据
label=‘新关注人数’,
)
plt.plot(
df[‘净增关注人数’],#y轴数据
label=‘净增关注人数’,
)

#添加标题和坐标轴标签
plt.title(‘公众号日增人数’)
plt.xlabel(‘日期’)
plt.ylabel(‘新增人数’)

#y轴文字的倾斜度
fig.autofmt_xdate(rotation=45)

#显示图例
plt.legend()

#显示图形
plt.show()

python:matplolib数据可视化--折线图

结论:新关注的人数和净增关注的人数的变化十分相似