通過安裝Anaconda3,使用matplotlib庫
0. 基本繪畫設定
(1). Figure和Subplot
matplotlib的影像都位於Figure物件中,你可以用plt.figure建立一個新的Figure.
#這時會彈出一個空窗
fig = plt.figure()12複製程式碼
但是不能通過空Figure繪圖,必須用add_subplot建立一個或多個subplot才行
#這條程式碼的意思是:影像應該是2X2的,且當前選中的是第一個
ax1 = fig.add_subplot(2,2,1)
#再繪製兩個
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)123456複製程式碼
此時繪圖,就會在subplot上進行繪製
例如:
from numpy.random import randn
plt.plot(randn(50).cumsum(), `k--`)
#`k--`是一個線型選項,用於告訴matplotlib繪製黑色虛線圖。123複製程式碼
別一種更為方便的方法,可以建立一個新的Figure,並返回一個含有已建立subplot物件的NumPy陣列:
#建立了一個兩行,三列的區域
fig, axes = plt.subplots(2,3)12複製程式碼
(2). 調整subplot周圍的間距
預設情況下,matplotlib會在subplot外圍留下一定的邊距,並在subplot之間留下一定的間距。
利用subplots_adjust方法可以調整間距
fig, axes = plt.subplots(2,2, sharex=True, sharey=True)
for i in range(2):
for j in range(2):
axes[i,j].hist(randn(500), bins=50, color=`k`, alpha=0.5)
plt.subplots_adjust(wspace=0, hspace=0)123456複製程式碼
(3). 顏色、標記和線型
根據x,y繪製綠色虛線
ax.plot(x, y, `g--`)
#與下面設定是一樣的
ax.plot(x, y, linestyle=`--`, color=`g`)123複製程式碼
線型圖可以加上一些標記,來強調實際的點
plt.plot(randn(30).cumsum(), `ko--`)
#等價於
plt.plot(randn(30).cumsum(), color=`k`, linestyle=`dashed`, marker=`o`)123複製程式碼
(4). 刻度、標籤和圖例
新增刻度和標籤
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
#修改X軸的刻度
#刻度放在哪些位置
ticks = ax.set_xticks([0,250,500,750,1000])
#也可以將其他值用作標籤
labels = ax.set_xticklabels([`one`,`two`,`three`,`four`,`five`], rotation=30, fontsize=`small`)
#為X軸設定一個名稱
ax.set_title(`My first matplotlib plot`)
#設定一個標題
ax.set_xlabel(`Stages`)1234567891011121314複製程式碼
新增圖例:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(), `k`, label=`one`)
ax.plot(randn(1000).cumsum(), `k--`, label=`two`)
ax.plot(randn(1000).cumsum(), `k.`, label=`three`)
ax.legend(loc=`best`)1234567複製程式碼
1. 繪製簡單的折線圖
(1). 函式plot()
列表傳遞給這個函式,這個函式將嘗試根據這些數字繪製出有意義的圖形。
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares)
plt.show()1234複製程式碼
(2). 修改標籤文字和線條粗細
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
#引數linewidth 決定了plot() 繪製的線條的粗細
plt.plot(squares, linewidth=5)
# 設定圖表標題, 並給座標軸加上標籤
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
# 設定刻度標記的大小
plt.tick_params(axis=`both`, labelsize=14)
plt.show()123456789101112131415複製程式碼
(3). 校正圖形
- 當你向plot() 提供一系列數字時, 它假設第一個資料點對應的 x 座標值為0, 但我們的第一個點對應的 x 值為1。
- 為改變這種預設行為, 我們可以給plot() 同時提供輸入值和輸出值:
input_values = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
plt.plot(input_values, squares, linewidth=5)123複製程式碼
2. 繪製繪製散點圖
(1). 使用scatter() 繪製散點圖並設定其樣式
import matplotlib.pyplot as plt
plt.scatter(2, 4)
plt.show()123複製程式碼
(2).使用scatter() 繪製一系列點
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]
#並使用實參s 設定了繪製圖形時使用的點的尺寸
plt.scatter(x_values, y_values, s=100)
plt.show()1234567複製程式碼
(3).刪除資料點的輪廓
可在呼叫scatter() 時傳遞實參edgecolor=’none’
plt.scatter(x_values, y_values, edgecolor=`none`, s=40)1複製程式碼
(4).自定義顏色
要修改資料點的顏色, 可向scatter() 傳遞引數c , 並將其設定為要使用的顏色的名稱,
plt.scatter(x_values, y_values, c=`red`, edgecolor=`none`, s=40)1複製程式碼
(5).使用顏色對映
顏色對映 ( colormap) 是一系列顏色, 它們從起始顏色漸變到結束顏色。
import matplotlib.pyplot as plt
x_values = list(range(1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor=`none`, s=40)
# 設定每個座標軸的取值範圍
plt.axis([0, 1100, 0, 1100000])
plt.show()12345678910複製程式碼
- 我們將引數c 設定成了一個 y 值列表, 並使用引數cmap 告訴pyplot 使用哪個顏色對映。
- 這些程式碼將 y值較小的點顯示為淺藍色, 並將 y 值較大的點顯示為深藍色.
(6).自動儲存圖表
要讓程式自動將圖表儲存到檔案中, 可將對plt.show() 的呼叫替換為對plt.savefig() 的呼叫
plt.savefig(`squares_plot.png`, bbox_inches=`tight`)1複製程式碼
- 第一個實參指定要以什麼樣的檔名儲存圖表, 這個檔案將儲存到scatter_squares.py所在的目錄中;
- 第二個實參指定將圖表多餘的空白區域裁剪掉。 如果要保留圖表周圍多餘的空白區域, 可省略這個實參。
(7). 隱藏座標軸
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
(8). 調整尺寸以適合螢幕
函式figure() 用於指定圖表的寬度、 高度、 解析度和背景色。
你需要給形參figsize 指定一個元組, 向matplotlib指出繪圖視窗的尺寸, 單位為英寸。
plt.figure(figsize=(10, 6))
3. 隨機漫步
choice()函式
#choice([0, 1, 2, 3, 4]) 隨機地選擇一個0~4之間的整數
x_distance = choice([0, 1, 2, 3, 4])12複製程式碼
range()函式
返回一系列連續增加的整數
randint()函式
返回一個1和麵數之間的隨機數