在學習王樹義老師的《用Python做輿情時間序列視覺化》筆記
阿新 • • 發佈:2019-02-04
無意間發現王老師的部落格,覺得對於新手來說很不錯的教程,於是就自己動手開始實戰其中的《用Python做輿情時間序列視覺化》,但是其中或多或少的會遇到一些問題,現就實現過程中的問題作一個總結。
首先在安裝ggplot這個包的時候,死活安裝不上,而且速度很慢點我檢視解決方法,所以就沒有使用ggplot,轉而使用常用的matlabplot.pyplot來畫。
# 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列進行了升序排序,最後執行出來的結果如下圖:
但是還有問題就是日期顯示不對,目前還沒有找到解決辦法,等找到了再來筆記。
如有問題,歡迎探討。