json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表
一:
Pandas是什么?
Pandas是一個強大的分析結構化數據的工具集;它的使用基礎是Numpy(提供高性能的矩陣運算);用于數據挖掘和數據分析,同時也提供數據清洗功能。
利器之一:DataFrame
DataFrame是Pandas中的一個表格型的數據結構,包含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾型等),DataFrame即有行索引也有列索引,可以被看做是由Series組成的字典。
利器之一:Series
它是一種類似于一維數組的對象,是由一組數據(各種NumPy數據類型)以及一組與之相關的數據標簽(即索引)組成。僅由一組數據也可產生簡單的Series對象。
以下為大家說明下常用的圖
一、線型圖?
對于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()
Python
執行上面示例代碼,得到以下結果 -
如果索引由日期組成,則調用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()
Python
執行上面示例代碼,得到以下結果 -
要生成一個堆積條形圖,通過指定: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)
Python
執行上面示例代碼,得到以下結果 -
要獲得水平條形圖,使用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)
P
四、直方圖
可以使用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)
Python
執行上面示例代碼,得到以下結果 -
要為每列繪制不同的直方圖,請使用以下代碼 -
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)
Python
執行上面示例代碼,得到以下結果 -
五、箱型圖
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()
Python
執行上面示例代碼,得到以下結果 -
六、塊型圖
可以使用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()
Python
執行上面示例代碼,得到以下結果 -
七、散點圖
可以使用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')
Python
執行上面示例代碼,得到以下結果 -
八、餅狀圖
餅狀圖可以使用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
執行上面示例代碼,得到以下結果 -
總結
以上是生活随笔為你收集整理的json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 散点图_Python绘制散
- 下一篇: b轮融资到上市需多久