環境:html
Windows10
python3.6.4
numpy1.14.1
matplotlib2.1.2
工具:Cmder
目錄:python
1.線性圖
2.散點圖
3.餅狀圖
4.條形圖
5.直方圖
例1:一條簡單的線性直線api
import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) ##能夠嘗試改下範圍值看看圖片有什麼變話 plt.plot(data) plt.show()
注:數組
1.經過np.arange(100, 201)生成一個[100, 200]之間的整數數組,它的值是:[100, 101, 102, … , 200]
2.經過matplotlib.pyplot將其繪製出來。
很顯然,繪製出來的值對應了圖中的縱座標(y軸)。
而matplotlib自己爲咱們設置了圖形的橫座標(x軸):[0, 100],由於咱們恰好有100個數值
3.經過plt.show()將這個圖形顯示出來
例2:一次畫多個直線dom
import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.plot(data) data2 = np.arange(200, 301) plt.figure() plt.plot(data2) plt.show()
例2~:畫在同一個畫板中函數
import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.subplot(2, 1, 1) plt.plot(data) data2 = np.arange(200, 301) plt.subplot(2, 1, 2) plt.plot(data2) plt.show()
plt.subplot(2, 1, 1) Return a subplot axes at the given grid position.
建立一個2行1列的圖片,並在第一個位置【第1行第1列】中準備建立一個圖工具
例3:線型圖【比起例1來講,咱們x,y都是已有的】spa
import matplotlib.pyplot as plt plt.plot([1, 2, 3], [3, 6, 9], '-r') plt.plot([1, 2, 3], [2, 4, 9], ':g') plt.show()
1.plot函數的第一個數組是橫軸的值,第二個數組是縱軸的值,因此它們一個是直線,一個是折線;
2.最後一個參數是由兩個字符構成的,分別是線條的樣式和顏色。
前者是紅色的直線,後者是綠色的點線。
注:API:matplotlib.pyplot.plot 文檔.net
例4:散點圖【藉助於scatter函數繪製散點】code
import matplotlib.pyplot as plt import numpy as np N = 20 ##plt.scatter(x,y,color顏色,size大小,alpha透明度) plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='r', s=100, alpha=0.5) plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='g', s=200, alpha=0.5) plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='b', s=300, alpha=0.5) plt.show()
注:
1.這幅圖包含了三組數據,每組數據都包含了20個隨機座標的位置
2.參數c表示點的顏色,s是點的大小,alpha是透明度
注:API:matplotlib.pyplot.scatter 文檔
例5:餅狀圖【pie函數可用於繪製餅狀圖】
import matplotlib.pyplot as plt import numpy as np labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] data = np.random.rand(7) * 100 plt.pie(data, labels=labels, autopct='%1.1f%%') plt.axis('equal') plt.legend() plt.show()
注:
1.data是一組包含7個數據的隨機數值
2.圖中的標籤經過labels來指定
3.autopct指定了數值的精度格式
4.plt.axis('equal')設置了座標軸大小一致
5.plt.legend()指明要繪製圖例(見下圖的右上角)
注:API:matplotlib.pyplot.pie 文檔
例6:條形圖【bar函數可用於繪製條形圖】
import matplotlib.pyplot as plt import numpy as np N = 7 x = np.arange(N) data = np.random.randint(low=0, high=100, size=N) colors = np.random.rand(N * 3).reshape(N, -1) labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] plt.title("Weekday Data") plt.bar(x, data, alpha=0.8, color=colors, tick_label=labels) plt.show()
注:
1.這幅圖展現了一組包含7個隨機數值的結果,每一個數值是[0, 100]的隨機數
2.它們的顏色也是經過隨機數生成的。
np.random.rand(N * 3).reshape(N, -1)表示先生成21(N x 3)個隨機數,而後將它們組裝成7行,那麼每行就是三個數,這對應了顏色的三個組成部分RGB。
3.title指定了圖形的標題,labels指定了標籤,alpha是透明度
注:API:matplotlib.pyplot.bar 文檔
例7:直方圖【hist函數可用於繪製直方圖】
import matplotlib.pyplot as plt import numpy as np data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]] labels = ['3K', '4K', '5K'] bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000] plt.hist(data, bins=bins, label=labels) plt.legend() plt.show()
注:
[np.random.randint(0, n, n) for n in [3000, 4000, 5000]]生成了包含了三個數組的數組,這其中:
第一個數組包含了3000個隨機數,這些隨機數的範圍是 [0, 3000)
第二個數組包含了4000個隨機數,這些隨機數的範圍是 [0, 4000)
第三個數組包含了5000個隨機數,這些隨機數的範圍是 [0, 5000)
bins數組用來指定咱們顯示的直方圖的邊界,即:
[0, 100) 會有一個數據點,
[100, 500)會有一個數據點,以此類推。因此最終結果一共會顯示7個數據點。