【數據分析day05】pandas中的繪圖函數

  • pandas中的繪圖函數實際上是調用的matplotlib
  • plot()
  • pip install scipy

線形圖

  • 反映趨勢

1. series線性圖

s = Series(data=np.random.randint(0,10, size=10))
s

在這裏插入圖片描述

# 默認畫的是線形圖
# 以index作爲x軸數據,以value作爲y軸數據
s.plot()

在這裏插入圖片描述

2. dataframe線性圖

index = ['張三', '李四', '王五', '趙六']
columns = ['語文', '數學', '英語']
data = np.random.randint(0, 150, size=(4, 3))
ddd = DataFrame(index=index, columns=columns, data=data)
ddd

在這裏插入圖片描述
顯示中文

# 顯示中文
plt.rcParams['font.sans-serif'] = ['SimHei']

解決中文情況下負號沒法正常顯示的問題.

plt.rcParams['axes.unicode_minus'] = False

ddd.index = [-2, -1, 0, 1]

# 以index作爲x軸數據,每一列畫一條線.
ddd.plot()

在這裏插入圖片描述

柱狀圖

  • 比較大小

Series柱狀圖

參數:kind = ‘bar’/‘barh’

s.plot(kind='bar', color=np.random.rand(10, 3))

在這裏插入圖片描述
橫向

s.plot(kind='barh')

在這裏插入圖片描述

DataFrame柱狀圖

在這裏插入圖片描述

# 每一行的數據放在一起,比較柱子大小.
ddd.plot(kind='bar')

在這裏插入圖片描述

水平柱狀圖

ddd.plot(kind='barh')

在這裏插入圖片描述

直方圖

只需要一維數據, 自動計算頻數.

  • 反映的是數據的分佈

  • y軸的數據是數據出現的次數. 我們叫做頻數.

  • kind=‘hist’

      s.plot(kind='hist', bins=10)
    

在這裏插入圖片描述
計算 直方數據

np.histogram(s)

在這裏插入圖片描述
density=True顯示密度估計

s.plot(kind='hist', density=True, bins=20)

在這裏插入圖片描述

np.histogram(s, density=True, bins=20)

在這裏插入圖片描述
kde圖:(看擬合程度)

  • 擬合密度估計,用於彌補直方圖由於參數bins設置的不合理導致的精度缺失問題

      s.plot(kind='hist', density=True, bins=10)
      s.plot(kind='kde') # kernel density estimate
    

在這裏插入圖片描述

練習:繪製一個由兩個不同的正態分佈組成的的雙峯分佈

n1 = np.random.normal(loc=5, scale=5, size=10000)
n2 = np.random.normal(loc=35, scale=10, size=10000)
n = np.hstack((n1, n2))
s = Series(data=n)
s.plot(kind='hist', density=True, bins=200)
s.plot(kind='kde')

在這裏插入圖片描述

散佈圖 (散點圖)

看兩個一維數據組成的一個關係數據

  • 觀察兩個一維數據數列之間的關係的有效方法
  • DataFrame對象可用
  • kind = ‘scatter’
  • 標準正態分佈特點:1)均值爲0, 2) -3~3 範圍

創建一個df

df = DataFrame({'A':  np.random.randn(1000), 'B': np.random.randn(1000), 'C': np.random.randn(1000), 'D': np.random.randn(1000)})
df.head()

在這裏插入圖片描述
數值特點:均值爲0, 在-3~3區間
散佈圖:

#查看A,B兩列數據組成的一個新的關係數據(相當於俯視圖)
df.plot(x='A', y='B', kind='scatter')

在這裏插入圖片描述
散佈圖矩陣,當有多個點時,兩兩點的關係

  • 使用函數:pd.plotting.scatter_matrix()
  • 參數diagonal:設置對角線的圖像類型

df中A,B,C,D兩兩組合就是16個

	pd.plotting.scatter_matrix(df, alpha=0.5, figsize=(4*4, 4*4), diagonal='kde')

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章