pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖
前言
前文傳送門:pandas可視化(1)【官方文檔解讀】--基礎繪圖
如繪圖過程中,中文字體和負號顯示有問題,可以參照如下鏈接修改配置參數設置正常顯示:
https://www.joinquant.com/post/441
條形圖
對於標記的非時間序列數據,你可能希望生成條形圖:
import matplotlibimport matplotlib.pyplot as pltimport pandas as pdimport numpy as npmatplotlib.style.use(ggplot)#使用ggplot樣式%matplotlib inlinets = pd.Series(np.random.randn(1000), index=pd.date_range(1/1/2000, periods=1000))ts = ts.cumsum()df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list(ABCD))df = df.cumsum()
註:如前一章,先導入必要的模塊和繪圖的數據準備
plt.figure();df.iloc[5].plot(kind=bar)plt.axhline(0, color=k)
註:df.iloc[5]意思是取出df第6行(索引為5),然後繪製條形圖
plt.axhline(0, color=k)指的是在y=0的位置畫一條黑色的線
註:因為是隨機產生的值繪圖,你的圖一般和我不一樣,一樣就厲害了!
這種為圖所存在的內存地址位置
df2 = pd.DataFrame(np.random.rand(10, 4), columns=[a, b, c, d])df2.plot.bar()
註:如果看了前一章,以上代碼很好理解,這裡同一幅圖繪製多個條形圖比較
df2.plot.bar(stacked=True)
註:將a、b、c、d數據疊加起來繪製條形圖
df2.plot.barh(stacked=True)
註:繪製水平疊加條形圖
直方圖
df4 = pd.DataFrame({a: np.random.randn(1000) + 1, b: np.random.randn(1000), c: np.random.randn(1000) - 1}, columns=[a, b, c])df4.head()
註:以標準正態分布為基礎產生一個df4
plt.figure()df4.plot.hist(alpha=0.5)
註:繪製直方圖,alpha=0.5意思為透明度為50%
註:明明有三列數據,畫出有六種顏色,應該是是顏色疊加出了新顏色
plt.figure()df4.plot.hist(stacked=True, bins=20)
註:畫堆積直方圖(不會重疊,直觀)bins=20指的是分為20個區段
圖中沒有顯示20個因為正態分布距離中心遠處取值可能心很小,可能只有個別值,在圖中不明顯
plt.figure();df4[a].plot.hist(orientation=horizontal, cumulative=True)
註:取出A列畫橫向累積直方圖,採用默認10個區段
plt.figure()df[A].diff().hist()
註:diff為差分,即後一個減去前一個,我們看一下:
df[A].diff().head()
註:顯示A列中差分結果的前五個數
注意,第一個值不存在,因為原來的第一個數減去前面一個(第一個的前面一個數不存在),所以為NaN
差分後繪製的直方圖為(默認為十個區段吧):
plt.figure()df.diff().hist(color=g, alpha=0.5, bins=20)
註:df中四欄(4列)分別繪製一階差分的圖(綠色,半透明,分20區段),有種2x2子圖的感覺
data = pd.Series(np.random.randn(1000))data.hist(by=np.random.randint(0, 4, 1000),figsize=(6, 4))
註:這裡產生1000個正態分布的隨機數,然後使用hist方法中的by參數隨機產生0-3中的整數(即0、1、2、3)
將原來的1000個正態分布的隨機數對應上分組繪製四張圖
圖的長寬大小為6x4
pandas的繪圖真美~~~~~~~~
pandas繪製條形圖、正方圖到此結束
文中所寫如有謬誤請指出,感謝!
參考文獻
http://pandas.pydata.org/pandas-docs/stable/visualization.html#
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。
加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※請問python theano中的shared variable是指什麼意思?
※python爬蟲如何深入學習?
※Python 的庫函數里有沒有現成的全排列函數?
※在 PyCharm 中寫 pip 包應該如何處理引用問題?
※用python寫程序時,怎麼知道我想實現的功能有沒有現成的函數?