matplotlib
1、安裝matplotlib
① linux系統安裝
# 安裝matplotlib模塊 $ sudo apt-get install python3-matplotlib # 如果是python2.7 執行如下命令 $ sudo apt-get install python-matplotlib # 如果你安裝較新的Python,安裝模塊一樂的一些庫 $ sudo apt-get install python3.5-dev python3.5-tk tk-dev $ sudo apt-get install libfreetype6-dev g++ # 再使用pip來安裝模塊 $ pip install --user matplotlib
② OS系統中安裝
# 安裝matplotlib模塊 $ pip install --user matplotlib
③ windows系統中安裝
# 安裝matplotlib模塊 $pip3 install matplotlib
進入終端執行import matplotlib 不報錯表示執行成功
2、繪制簡單的折線圖
① 創建mpl_squares.py文件:
import matplotlib.pyplot as plt # 導入模塊 squares = [1,4,9,16,25] # 指定列表Y坐標為列表中的值,X坐標為列表下標 plt.plot(squares) # 傳入列表 plt.show() # 輸出圖像
繪圖:

② 修改標簽文字和線條粗細:
import matplotlib.pyplot as plt # 導入模塊
squares = [1,4,9,16,25] # 指定列表Y坐標為列表中的值,X坐標為列表下標
plt.plot(squares,linewidth=5) # linewidth決定繪制線條的粗細
plt.title('Square Numbers',fontsize=24) # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 輸出圖像
繪圖:

③ 校正圖形(設定X坐標):
import matplotlib.pyplot as plt # 導入模塊
squares = [1,4,9,16,25] # 指定列表Y坐標為列表中的值
input_values = [1,2,3,4,5]
plt.plot(input_values,squares,linewidth=5) # linewidth決定繪制線條的粗細
plt.title('Square Numbers',fontsize=24) # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 輸出圖像
繪圖:

3、繪制散點圖
① 創建scatter_sqares.py:
import matplotlib.pyplot as plt
plt.scatter(2,4,s=200) #X坐標2,Y坐標4 S=200 點大小
plt.title('Square Numbers',fontsize=24) # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 輸出圖像
繪圖:

② 繪制一系列點:
import matplotlib.pyplot as plt x_values = [1,2,3,4,5] # 指定X軸 y_values = [1,4,9,16,25] # 指定Y軸 plt.scatter(x_values,y_values,s=100) --snip--- plt.show() # 輸出圖像
繪圖

③ 自動計算數據:
import matplotlib.pyplot as plt
x_values = list(range(1,1001)) # 指定X軸
y_values = [x**2 for x in x_values] # 指定Y軸
plt.scatter(x_values,y_values,s=1,edgecolors='none') #edgecolors 刪除數據點輪廓
plt.title('Square Numbers',fontsize=24) # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.axis([0,1100,0,1100000]) # 設置坐標取值范圍
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 輸出圖像
繪圖:

④ 自定義顏色
要修改數據點顏色,可向scatter()傳遞參數c,並將其設置為要使用的顏色的名稱
plt.scatter(x_values,y_values,s=1,edgecolors='none',c='red') # 紅色
你還可以使用RGB顏色模式自定義顏色,要指定自定義顏色,傳入一個元祖,分別表示紅色,綠色,藍色,0~1范圍,值越接近0,指定的顏色越深,值越接近1,指定的顏色越淺
plt.scatter(x_values,y_values,s=1,edgecolors='none',c=(0,0,0.8)) # 藍色
顏色映射-漸變色
import matplotlib.pyplot as plt
x_values = list(range(1,1001)) # 指定X軸
y_values = [x**2 for x in x_values] # 指定Y軸
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=1,edgecolors='none',) # 從淺藍色到深藍色
plt.title('Square Numbers',fontsize=24) # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.axis([0,1100,0,1100000]) # 設置坐標取值范圍
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 輸出圖像
繪圖:

自動保存圖標:
plt.savefig('squares_plot.png',bbox_inches='tight')
4、隨機漫步
創建random_walk.py文件:
from random import choice
class RandWalk(object):
def __init__(self,count=5000):
self.count = count
self.x_list = [0]
self.y_list = [0]
def fill_walk(self):
while len(self.x_list) < self.count:
x_step = self.fill_step()
y_step = self.fill_step()
if x_step ==0 or y_step == 0:
continue
next_x = self.x_list[-1] + x_step
next_y = self.y_list[-1] + y_step
self.x_list.append(next_x)
self.y_list.append(next_y)
def fill_step(self):
direction = choice([-1, 1])
distance = choice([2, 4, 6, 8, 10])
return direction*distance
創建rw_visual.py文件:
import matplotlib.pyplot as plt from random_walk import RandWalk rw = RandWalk() rw.fill_walk() point_numbers = list(range(rw.count)) plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1) #顏色由淺轉深 plt.show()
繪圖:

調整尺寸適合屏幕、隱藏X軸Y軸,繪制起點和終點:
import matplotlib.pyplot as plt from random_walk import RandWalk rw = RandWalk() rw.fill_walk() point_numbers = list(range(rw.count)) plt.figure(dpi=128,figsize=(10,6)) # 設置顯示圖片大小 plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1) # 顏色由淺轉深 plt.scatter(0,0,c='green',edgecolors='none',s=10) # 起始顏色 plt.scatter(rw.x_list[-1],rw.y_list[-1],c='red',edgecolors='none',s=10) # 終點顏色 plt.axes().get_xaxis().set_visible(False) # 隱藏X軸 plt.axes().get_yaxis().set_visible(False) # 隱藏Y軸 plt.show()
繪圖:

