1
我正在對幾個網絡博客進行文本內容分析,現在專注於發現新興趨勢。爲了給一個博客這樣做,我編寫了一個多步驟的過程:隨着時間的推移頻率:如何在Python/pandas/matplotlib繪製一張圖的+200圖?
- 遍歷所有的帖子,發現前5名的關鍵字,每個崗位
- 將它們添加到列表中,如果他們不已經在列表中
- 爲每個單個帖子計算列表中所有術語的詞頻
- 創建詞典列表,其中爲每個帖子保存帖子的日期以及每個單詞的tf
- 從這個詞典列表中創建一個數據框,並將其繪製成
這一切都很好,除了我在一個情節中得到1000張圖,而我只關心那些超過某個閾值的人。 這意味着他們應該有一組不同的顏色或以其他方式容易辨認,並且它們應該出現在圖例中 - 其餘不是。 任何想法如何做到這一點?
這是我現在使用的代碼,它產生不可讀的情節:
from pattern.db import Database
import pandas as pd
import matplotlib.pyplot as plt
def plot_trends(keywords_and_date_list):
d1 = pd.DataFrame(keywords_and_date_list)
d1.sort(inplace=True)
grouped = d1.groupby(pd.Grouper(freq='1M', key="date")).mean()
plt.style.use("ggplot")
fig = plt.figure(figsize=(25,6))
for i in d1.columns:
if i == 'date':
continue
plt.plot(grouped.index, grouped[i], lw=2, label="monthly average " + i)
plt.ylim(0,0.015)
plt.legend(prop={'size':7})
plt.title("Occurence of various words in blogs")
plt.xlabel("Post publication date")
plt.ylabel("Term Frequency")
plt.show()
做任何你有怎樣可行性的圖形峯值在區分什麼想法,比方說0.004,並分配他們有不同的顏色和標籤?
我玩了一個小數據集,以達到熊貓的最大功能,但我沒有得到它的工作。
import pandas as pd
import numpy as np
from pattern.db import date
import matplotlib.pyplot as plt
l = [dict(date=date('2015-01-02'), one=0.1, two=0.2)]
l.append(dict(date=date('2014-01-01'), one=0.2, two=0.5))
l.append(dict(date=date('2014-02-01'), one=0.5, two=0.6))
l.append(dict(date=date('2014-03-01'), one=0.1, two=0.7))
d1 = pd.DataFrame(l)
d2 = d1.set_index('date')
plt.style.use("ggplot")
fig = plt.figure(figsize=(10,6))
for i in d1.columns:
if d1.max() >= 0.6:
plt.plot(d1.index, d1[i], lw=2, label="monthly average " + i)
else:
plt.plot(d1.index, d1[i], lw=2)
plt.ylim(0,1)
plt.legend(prop={'size':10})
plt.title("Occurence of various words in Naoki's blog")
plt.xlabel("Post publication date")
plt.ylabel("Term Frequency")
plt.show()
我希望看到的結果是一張帶有標籤的圖和一張沒有標籤的圖。我玩的是不同的語法,但是我得到兩個帶標籤的圖,或者一個值錯誤,或者datetype和float不能比較的錯誤。
@Andreusthanks這麼多去強調低附加值產品的數據線!你的代碼工作得很好,並給出我想要的圖片。我試圖將相關的部分轉換爲我的原始代碼,但那並不奏效......我將代碼放在上面的代碼中。 – azora
確定它現在也適用於大集合,我犯了一個愚蠢的錯誤。必須根據「分組」最大值對它們進行分類,而不是根據未分組的最大值進行分類。分類的工作,只是當所有的圖形都在分組之上時...非常感謝! – azora