在学习王树义老师的《用Python做舆情时间序列可视化》笔记

无意间发现王老师的博客,觉得对于新手来说很不错的教程,于是就自己动手开始实战其中的《用Python做舆情时间序列可视化》,但是其中或多或少的会遇到一些问题,现就实现过程中的问题作一个总结。

首先在安装ggplot这个包的时候,死活安装不上,而且速度很慢点我查看解决方法,所以就没有使用ggplot,转而使用常用的matlabplot.pyplot来画。

然而又遇到了画图时中文乱码问题,经查阅了许多博客,最终《kaggle练习之Python中matplotlib()输出图表的label、title、legend中文乱码问题与解决》这篇博客解决了我的问题。

# coding:utf-8
import pandas as pd
from snownlp import SnowNLP
import matplotlib.pyplot as plt
import matplotlib

df = pd.read_excel('restaurant-comments.xlsx')
# print(df[:5])
myfont = matplotlib.font_manager.FontProperties(fname="C:\Windows\Fonts\simkai.ttf")    # 因为matlabplot没有中文自体,此句是设置画图所用的字体

def get_sentiments(text):
    s = SnowNLP(text)
    return s.sentiments

df['sentiment'] = df.comments.apply(get_sentiments)
# print(df[:5])
# print(df.sentiment.mean())
# print(df.sentiment.median())
date = df.date
plt.xlabel('date')
plt.ylabel('sentiments')
plt.title(u'舆情分析', fontproperties=myfont)
plt.plot(date, df.sentiment, color='r', marker='o', markerfacecolor='blue')
plt.show()

但是可能因为ggplot可以自动对日期进行排序,而matlabplot没有些功能,读出来的时间先后顺序是怎样就按怎样的顺序进行描点画图,所以导致画出来的图很乱。


也没有找到更好的办法 ,所以直接在excel中人工对date列进行了升序排序,最后运行出来的结果如下图:



但是还有问题就是日期显示不对,目前还没有找到解决办法,等找到了再来笔记。

如有问题,欢迎探讨。





猜你喜欢

转载自blog.csdn.net/sinat_29694963/article/details/79040935
今日推荐