pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖

前言

前文傳送門:pandas可視化(1)【官方文檔解讀】--基礎繪圖

如繪圖過程中,中文字體和負號顯示有問題,可以參照如下鏈接修改配置參數設置正常顯示:

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繪製條形圖、正方圖到此結束

文中所寫如有謬誤請指出,感謝!

參考文獻

pandas.pydata.org/panda

作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。

出處:pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖

配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

加小編個人微信:tsdatajob ,跟作者互動,一起探討。

推薦閱讀:

請問python theano中的shared variable是指什麼意思?
python爬蟲如何深入學習?
Python 的庫函數里有沒有現成的全排列函數?
在 PyCharm 中寫 pip 包應該如何處理引用問題?
用python寫程序時,怎麼知道我想實現的功能有沒有現成的函數?

TAG:Python | Python库 | Python入门 |