1. 程式人生 > >在學習王樹義老師的《用Python做輿情時間序列視覺化》筆記

在學習王樹義老師的《用Python做輿情時間序列視覺化》筆記

無意間發現王老師的部落格,覺得對於新手來說很不錯的教程,於是就自己動手開始實戰其中的《用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列進行了升序排序,最後執行出來的結果如下圖:


但是還有問題就是日期顯示不對,目前還沒有找到解決辦法,等找到了再來筆記。

如有問題,歡迎探討。