2017-07-10 22 views
1

我想使用下面的數據集按小時(0-23)獲取聯機活動。在python 3.x版本中使用matplotlib時什麼都不顯示

樣本數據集名爲activities。該數據集是這樣的:

hour activity_counts 
00  2 
01  30 
02  25 
03  40 
04  10 
05  4 
06  8 
07  10 
08  30 
09  50 
10  100 
11  300 
12  600 
13  340 
... 
23  780 

這裏是我的代碼:

plt.plot(x=activities['hour'], y=activities['activity_counts'],fmt="H") 
plt.title("Customer Online Activities by Hour") 
plt.xlabel("Hours") 
plt.ylabel("Hour Activity") 
plt.grid(True) 
plt.show() 

這樣的情節。情節上什麼也沒有。

enter image description here

那麼,什麼是錯我的代碼?

回答

3

問題是x=y=。沒有論據plot名爲xy(所以你通過什麼用意志,他們最終在**kwargs並有可能忽略這個名字),所以嘗試沒有這些:

plt.plot(activities['hour'], activities['activity_counts'], "H") # only this line changed 
plt.title("Customer Online Activities by Hour") 
plt.xlabel("Hours") 
plt.ylabel("Hour Activity") 
plt.grid(True) 
plt.show() 

也有一些錯字: 'activity_counts'應改爲使用的'activities'

+0

是的。當我刪除'''x ='''和''''''''時,它工作。而且,我只是刪除'''fmt ='H''''如果我不' t刪除,格式問題出現錯誤。 – Rya

+0

@Rya感謝您的反饋。我也從答案中刪除了'fmt'。請注意,您仍然可以使用''H「'標記,只需將其傳遞給函數而不需要'fmt ='(同樣的問題)。 – MSeifert

0

你可以使用pandas.dataframe.plot

ax = activities.plot(x="hour",y="activity_counts",title="Customer Online Activities by Hour", marker="H") 
ax.set_xlabel("Hours") 
ax.set_ylabel("Hour Activity") 
ax.grid(True) 

enter image description here

+0

你也可以使用:marker =「H」' – MSeifert

+0

傳遞請求的標記樣式哦,那就是fmt =「H」。謝謝。 –

+1

這也有效。我只是安裝'''plt.style.use('ggplot')'''讓繪圖更像ggplot。 – Rya

相關問題