您好,登錄后才能下訂單哦!
小編給大家分享一下Python中如何使用Pandas生成可視化圖表,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、線型圖
對于pandas的內置數據類型,Series 和 DataFrame 都有一個用于生成各類 圖表 的 plot 方法。 默認情況下, 它們所生成的是線型圖。其實Series和DataFrame上的這個功能只是使用matplotlib庫的plot()方法的簡單包裝實現。參考以下示例代碼 -
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10,4),index=pd.date_range('2018/12/18', periods=10), columns=list('ABCD')) df.plot()
執行上面示例代碼,得到以下結果 -
如果索引由日期組成,則調用gct().autofmt_xdate()來格式化x軸,如上圖所示。
我們可以使用x和y關鍵字繪制一列與另一列。
s = Series( np. random. randn( 10). cumsum(), index= np. arange( 0, 100, 10)) s. plot()
pandas 的大部分繪圖方法都有 一個 可選的ax參數, 它可以是一個 matplotlib 的 subplot 對象。 這使你能夠在網格 布局 中 更為靈活地處理 subplot 的位置。 DataFrame的plot 方法會在 一個 subplot 中為各列繪制 一條 線, 并自動創建圖例( 如圖所示):
df = DataFrame( np. random. randn( 10, 4). cumsum( 0), ...: columns=[' A', 'B', 'C', 'D'], index= np. arange( 0, 100, 10)) df. plot()
二、柱狀圖
在生成線型圖的代碼中加上 kind=' bar'( 垂直柱狀圖) 或 kind=' barh'( 水平柱狀圖) 即可生成柱狀圖。 這時,Series 和 DataFrame 的索引將會被用 作 X( bar) 或 (barh)刻度:
In [59]: fig, axes = plt. subplots( 2, 1) In [60]: data = Series( np. random. rand( 16), index= list(' abcdefghijklmnop')) In [61]: data. plot( kind=' bar', ax= axes[ 0], color=' k', alpha= 0. 7) Out[ 61]: < matplotlib. axes. AxesSubplot at 0x4ee7750> In [62]: data. plot( kind=' barh', ax= axes[ 1], color=' k', alpha= 0.
對于 DataFrame, 柱狀 圖 會 將 每一 行的 值 分為 一組, 如圖 8- 16 所示:
In [63]: df = DataFrame( np. random. rand( 6, 4), ...: index=[' one', 'two', 'three', 'four', 'five', 'six'], ...: columns= pd. Index([' A', 'B', 'C', 'D'], name=' Genus')) In [64]: df Out[ 64]: Genus A B C D one 0. 301686 0. 156333 0. 371943 0. 270731 two 0. 750589 0. 525587 0. 689429 0. 358974 three 0. 381504 0. 667707 0. 473772 0. 632528 four 0. 942408 0. 180186 0. 708284 0. 641783 five 0. 840278 0. 909589 0. 010041 0. 653207 six 0. 062854 0. 589813 0. 811318 0. 060217 In [65]: df. plot( kind=' bar')
三、條形圖
現在通過創建一個條形圖來看看條形圖是什么。條形圖可以通過以下方式來創建 -
import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d']) df.plot.bar()
執行上面示例代碼,得到以下結果 -
要生成一個堆積條形圖,通過指定:pass stacked=True -
import pandas as pd df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d']) df.plot.bar(stacked=True)
執行上面示例代碼,得到以下結果 -
要獲得水平條形圖,使用barh()方法 -
import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d']) df.plot.barh(stacked=True)
四、直方圖
可以使用plot.hist()方法繪制直方圖。我們可以指定bins的數量值。
import pandas as pd import numpy as np df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c']) df.plot.hist(bins=20)
執行上面示例代碼,得到以下結果 -
要為每列繪制不同的直方圖,請使用以下代碼 -
import pandas as pd import numpy as np df=pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c']) df.hist(bins=20)
執行上面示例代碼,得到以下結果 -
五、箱型圖
Boxplot可以繪制調用Series.box.plot()和DataFrame.box.plot()或DataFrame.boxplot()來可視化每列中值的分布。
例如,這里是一個箱形圖,表示對[0,1)上的統一隨機變量的10次觀察的五次試驗。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E']) df.plot.box()
執行上面示例代碼,得到以下結果 -
六、塊型圖
可以使用Series.plot.area()或DataFrame.plot.area()方法創建區域圖形。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) df.plot.area()
執行上面示例代碼,得到以下結果 -
七、散點圖
可以使用DataFrame.plot.scatter()方法創建散點圖。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd']) df.plot.scatter(x='a', y='b')
執行上面示例代碼,得到以下結果 -
八、餅狀圖
餅狀圖可以使用DataFrame.plot.pie()方法創建。
import pandas as pd import numpy as np df = pd.DataFrame(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], columns=['x']) df.plot.pie(subplots=True)
執行上面示例代碼,得到以下結果 -
以上是“Python中如何使用Pandas生成可視化圖表”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。