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

前言

前段時間想學習python的可視化,自己也做過各種探索

從seaborn(色彩很好看,但是個人感覺調色太專業,底子沒打好學起來很累)

到matplotlib(python基礎繪圖模塊,但是寫起來特別麻煩,學的不深入圖不好看)

再到pyplot(互動式很強,學起來難度太大)

最後由秦路老師推薦,學了pandas的可視化

有以下兩個原因:

(1)pandas我之前學過,也寫過官方文檔翻譯連載,比較熟悉

(2)pandas可視化的圖風格很好看,很商務風

環境

IDE : jupyter notebook

Anaconda 3.X

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

joinquant.com/post/441

基於matplotlib

import matplotlib.pyplot as pltn

註:導入matplotlib.pyplot

import matplotlibnmatplotlib.style.use(ggplot)n%matplotlib inlinen

註:使用ggplot樣式,並且將圖畫在jupyter notebook中

import pandas as pdnimport numpy as npnts = pd.Series(np.random.randn(1000), index=pd.date_range(1/1/2000, periods=1000))nts.plot()n

註:使用pandas創建一個Series(序列),序列值是隨機生成的1000個標準正態分布值,索引是從2000-1-1開始的1000個時間序列值

然後使用plot默認畫圖

可以看出,這個圖非常不規則,因為相鄰的兩個值也是隨機大小

import pandas as pdnimport numpy as npnts = pd.Series(np.random.randn(1000), index=pd.date_range(1/1/2000, periods=1000))nts = ts.cumsum()nts.plot()n

註:這裡加上了ts = ts.cumsum(),意思是返回累積值,在時間序列分析中,經常觀察累積值曲線觀察走勢

是不是這個累積值看起來規則多了呢

df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list(ABCD))ndf = df.cumsum()nplt.figure()ndf.plot()n

註:這裡使用pandas創建了一個DataFrame(數據框,有點像excel表格那種),為什麼不用剛才的Series呢?

劃重點啦!因為這裡DataFrame中創建了4組數據

這4組數據都是隨機生成的1000個標準正態分布值

索引是從2000-1-1開始的1000個時間序列值

並且也是求他們各自的累積值並且畫圖

df3 = pd.DataFrame(np.random.randn(1000, 2), columns=[B, C]).cumsum()ndf3[A] = pd.Series(list(range(len(df))))ndf3.plot(x=A, y=B)n

註:使用DataFrame創建了2組數據,也是1000個標準正態分布,分別命名為B、C(就行excel中列名)

並且求累積值

再在原來的df(DataFrame的簡稱)(這裡名字是df3)上加上一列名為A

A的值是0-999(使用df3的長度為1000,然後range被套列表生成一列數,作為x軸),y軸是B列數據(累積值),c列數據最後繪圖沒有用上

pandas基礎繪圖plot到此結束

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

參考文獻

pandas.pydata.org/panda

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

出處:pandas可視化(1)【官方文檔解讀】

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

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

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

推薦閱讀:

如何理解python的類與對象?
Python中如何程序的異常處理的問題?
python和C#結合的效果如何?是否能讓C#寫的程序調用python的庫?

TAG:Python | Python入门 | 数据可视化 |