Python數據分析:直方圖及子圖的繪製

1.直方圖的繪製也需要用到matplotlib下的pylab,只不過在繪製折線圖時我們採用的是plot(),而繪製直方圖時我們需要採用hist()。由於在繪製過程中缺少真實數據,我在這裏採用np.random.normal(a,b,c)生成的隨機數繪製直方圖,a爲平均值,b爲標準差,c爲生成數據的個數。利用np.arange(a,b,c)確定直方圖x軸的範圍及間距,a爲最小值,b爲最大值,c爲間距。用plt.hist(a,b)繪製,a爲數據,b爲直方圖的特性,可有可無。

import matplotlib.pylab as plt
import numpy as np
da = np.random.normal(5.0, 0.5, 3000)
dis = np.arange(3.5, 5, 0.1)
plt.hist(da, dis)
plt.show()

2.繪製子圖時,我們需要先將空間分爲若干份,這時需要採用命令plt.subplot(a,b,c),其中a表示行,b表示列,c表示從第一行開始從左向右數到c的當前區域。例如,如果想要在第一行繪製三個子圖,第二行繪製一個子圖,需要採用以下代碼

import matplotlib.pylab as plt
import numpy as np
plt.subplot(2, 3, 1)
plt.subplot(2, 3, 2)
plt.subplot(2, 3, 3)
plt.subplot(2, 1, 2)
plt.show()

在這裏插入圖片描述
3.區域拆分結束後我們該怎樣在每個區域內繪製相應的圖像呢?我們在前面用代碼將區域拆分爲了四部分,如果我們想在某個區域內繪圖,只需將繪圖代碼寫在那一部分的代碼下即可

import matplotlib.pylab as plt
import numpy as np
plt.subplot(2, 3, 1)	#下面的語句繪製第一個子圖
x1 = [1, 3, 5, 7, 9, 11]
y1 = [2, 4, 6, 8, 10, 12]
plt.plot(x1, y1, 'c')
plt.subplot(2, 3, 2)	#下面的語句繪製第二個子圖
x2 = [3, 5, 6, 7, 9, 13, 20]
y2 = [1, 6, 2, 3, 5, 7, 11]
plt.plot(x2, y2, 'ob')
plt.subplot(2, 3, 3)	#下面的語句繪製第三個子圖
x3 = [2, 5, 7, 8, 10, 11]
y3 = [3, 5, 4, 1, 15, 10]
plt.plot(x3, y3, '-.')
plt.plot(x3, y3, 's')
plt.subplot(2, 1, 2)	#下面的語句繪製第四個子圖
da = np.random.normal(5.0, 0.5, 3000)
dis = np.arange(3.5, 5, 0.1)
plt.hist(da, dis)
plt.show()

在這裏插入圖片描述

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