Pandas系列(十二)-可視化詳解

目錄python

  • 1. 折線圖
  • 2. 柱狀圖
  • 3. 直方圖
  • 4. 箱線圖
  • 5. 區域圖
  • 6. 散點圖
  • 7. 餅圖六邊形容器圖

  數據分析的結果不單單只是你來看的,更多的時候是給需求方或者老闆來看的,爲了更直觀地看出結果,dom

  數據可視化是必不可少的一個環節。這裏帶你們來看下一些經常使用的圖形的畫法。spa

  數據準備

# 導入相關庫
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib
# matplotlib.style.use("ggplot")
%matplotlib inline #總結:%matplotlib inline 能夠在Ipython編譯器裏直接使用,功能是能夠內嵌繪圖,而且能夠省略掉plt.show()這一步。

np.random.seed(100)

Pandas 的數據可視化的實現底層依賴於 matplotlib,因此畫圖時不少基礎知識須要涉及到 matplotlib。
畫圖其實就是跟各類數字打交道,這裏咱們先給僞造一些數據。3d

df = pd.DataFrame(np.random.randint(-10, 10, (10, 3)), index=pd.date_range("1/1/2000", periods=10), columns=list("ABC"))
df = df.cumsum()
df.head()
Out[112]: 
            A   B   C
2000-01-01 -2  -7  -3
2000-01-02  3  -1  -3
2000-01-03 -5  -9 -11
2000-01-04 -1 -17  -4
2000-01-05  5 -12 -10

  1.折線圖

  生成數據以後,咱們看下如何進行畫圖。其實很是簡單的,調用 plot 方法就能夠看到畫圖的結果了。默認狀況下參數 kind="line" 表示圖的類型爲折線圖。經過折線圖能夠看出數據隨着某個變量的變化趨勢。blog

df.plot()

df.plot(x="A",y="C")

  

  2. 柱狀圖

  經過柱狀圖能夠對比多個值的差異。若是想要畫出柱狀圖,能夠將參數 kind 設置爲 bar 或者 barh。索引

df.plot(kind="bar")
plt.show()

能夠看到,設置 kind="bar" 以後,圖形以索引爲 x 軸, 列爲 y 軸。編譯器

df.plot(kind="barh")
plt.show()

能夠看到,設置 kind="barh" 以後,圖形以列爲 x 軸, 索引爲 y 軸。一樣咱們也能夠本身指定 x 軸和 y 軸。數據分析

 

#本身設定x軸y軸
df.plot(kind="bar",x="A",y=["B","C"])
plt.show()

 

#此外,若是想要生成堆疊條形圖的haunted,能夠設置參數 stacked=True。pandas

df.plot(kind="bar",stacked=True)
plt.show()

 

  3. 直方圖

  直方圖是一種展現數據頻數/率的特殊的柱狀圖。若是想要畫出直方圖,能夠將參數 kind 設置爲 hist。能夠經過設置參數 bins 來改變 bin 的大小。io

df.plot(kind="hist")
plt.show()

df.plot(kind="hist",bins=5)
plt.show()

  

  4.箱線圖

經過箱線圖能夠展現出分位數,具體包括上四分位數、下四分位數、中位數以及上下5%的極值。若是想要畫出箱線圖,能夠將參數 kind 設置爲 box。

df.plot(kind="box")
plt.show()

  5.區域圖

  若是想要畫出區域圖,能夠將參數 kind 設置爲 area。默認狀況下,區域圖是堆積的,要生成堆積的區域圖圖,每列必須所有爲正值或全爲負值。

df.abs().plot(kind="area")
plt.show()

  

想要生成不堆積的區域圖,設置參數 stacked=False 便可。

df.plot(kind="area", stacked=False)
plt.show()

  

  6.散點圖

  若是想要畫出散點圖,能夠將參數 kind 設置爲 scatter,同時須要指定 x 和 y。經過散點圖能夠探索變量之間的關係。

df.plot(kind="scatter", x="A", y="B")
plt.show()

 

能夠設置參數 c 做爲列的名稱覺得每一個點提供顏色。

df.plot(kind="scatter", x="A", y="B", c="C")
plt.show()

  

#若是想要在單個軸上繪製多個列組,須要指定 ax。

ax = df.plot(kind="scatter", x="A", y="B", color="blue")
df.plot(kind="scatter", x="C", y="B", color="green", ax=ax)
plt.show()

  

7.餅圖

若是想要畫出餅圖,能夠將參數 kind 設置爲 scatter。

a = df.A[:5]
a.abs().plot.pie(subplots=False,figsize=(4,4))
plt.show()

  

a.abs().plot.pie(subplots=True,figsize=(4,4))
plt.show()

若是想要自動計算出比例,能夠設置參數 autopct。

a.abs().plot.pie(subplots=True, figsize=(4, 4), autopct="%.2f")
plt.show()

  

  8.六邊形容器圖

  在繪製散點圖時,若是數據過於密集,則沒法單獨繪製出每一個點,這時候能夠考慮 Hexbin 圖。
  其中,左邊座標表示的是值的分佈,右邊座標表示的是數據量大小與顏色的對比。一個有用的關鍵字參數是 gridsize ; 它控制x方向的六邊形數量,而且默認爲100.較大的格柵意味着更多的較小的分區。

df = pd.DataFrame(np.random.randn(1000, 2), columns=["A", "B"])
df["B"] = df["B"] + np.arange(1000)
df.plot(kind="hexbin", x="A", y="B", gridsize=10)
plt.show()

  

 

df.plot(kind="hexbin", x="A", y="B", gridsize=20)
plt.show()

  

相關文章
相關標籤/搜索