【matplotlib】【notebook】淘宝评论数据指标——发布评论的时间(rateDate列)折线图

工具:jupyter notebook

观察perfectdiary_data.xlsx源文件的表格数据,利用筛选工具,发现近的日期是“2021-01-02”,最早的日期是“2020-11-12”。我们需要绘制出这个时间区间,每一天发布评论的数量的折线图,x轴取日期的值,y轴取该日期的频数,日期为“2021-01-02”格式,不需要时分秒(即后半部分)。



导入包:

import pandas as pd

import re

import numpy as np

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

from pylab import *

from datetime import date,datetime

读取数据:

df=pd.read_excel('perfectdiary_data.xlsx',index_col=None)

print(len(df['rateDate']))

df['rateDate'].values

print(type(df['rateDate'].values))

列表转字符串:

content = ''

c_list = []

for i in df['rateDate'].values:

    content += i[:10]+' '#取到每个字符索引9的位置,即只取出年月日;拼接空格,以便分割成列表

    c_list=content.split(' ')#返回数据类型为列表


c_list=sorted(c_list)#升序排列

c_list

结果如图:


发现获得的列表,第一个值为空,需要去掉,看下面代码:c_list[1:]。

统计每个日期出现的频数:

result_dic={}

for item_str in c_list[1:]:#从第二个值开始取值

    if item_str not in result_dic:

        result_dic[item_str]=1

    else:

        result_dic[item_str]+=1

len(result_dic)

赋给x,y轴数据:

x_data=[]

y_data=[]

for key in result_dic:

x_data.append(key) #时间       

y_data.append(result_dic[key]) #出现的频次

y_data

结果如下图:


绘制折线图:

#设置x,y轴的数值

x = np.array(x_data)

y = np.array(y_data)


#正常显示中文标签

plt.rcParams['font.sans-serif']=['SimHei']


#创建绘图对象,figsize参数可以指定绘图对象的宽度和高度

plt.figure(figsize=(45,8))


#在当前绘图对象中画图(x轴,y轴,给所绘制的曲线的名字,画线颜色,画线宽度)

plt.plot(x,y,label="每个时间点发布评论的频数",color="blue",linewidth=2)


#X轴的文字

plt.xlabel("rateDate")


#Y轴的文字

plt.ylabel("Frequency")


#图表的标题

plt.title("时间折线图")


#Y轴的范围

plt.ylim(0,320)


#显示图示

plt.legend()


#显示图

plt.show()


#保存图

plt.savefig("时间折线图.jpg")

参考链接:https://www.jb51.net/article/130979.htm

结果如下图(红色字体是截图的时候标的):


完结,撒花

你可能感兴趣的:(【matplotlib】【notebook】淘宝评论数据指标——发布评论的时间(rateDate列)折线图)