pandas可視化(1)【官方文檔解讀】--基礎繪圖
前言
前段時間想學習python的可視化,自己也做過各種探索
從seaborn(色彩很好看,但是個人感覺調色太專業,底子沒打好學起來很累)
到matplotlib(python基礎繪圖模塊,但是寫起來特別麻煩,學的不深入圖不好看)
再到pyplot(互動式很強,學起來難度太大)
最後由秦路老師推薦,學了pandas的可視化
有以下兩個原因:
(1)pandas我之前學過,也寫過官方文檔翻譯連載,比較熟悉
(2)pandas可視化的圖風格很好看,很商務風
環境
IDE : jupyter notebook
Anaconda 3.X
如繪圖過程中,中文字體和負號顯示有問題,可以參照如下鏈接修改配置參數設置正常顯示:
https://www.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到此結束
文中所寫如有謬誤請指出,感謝!
參考文獻
http://pandas.pydata.org/pandas-docs/stable/visualization.html#
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:pandas可視化(1)【官方文檔解讀】配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享 公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※如何理解python的類與對象?
※Python中如何程序的異常處理的問題?
※python和C#結合的效果如何?是否能讓C#寫的程序調用python的庫?