Matplotlib 多是 Python 2D-繪圖領域使用最普遍的套件。它能讓使用者很輕鬆地將數據圖形化,而且提供多樣化的輸出格式。這裏將會探索 matplotlib 的常見用法。python
安裝matplotibmarkdown
pip install -i https://pypi.douban.com/simple/ matplotlib
測試matplotibapp
$python >>>import matplotlib >>> #沒有錯誤信息輸出,則表示matplotlib安裝成功。
這個可能pyCharm識別不了,能夠進行如下操做dom
import matplotlib.pyplot as plt squares = [1,4,9,16,25] plt.plot(squares) plt.show()
import matplotlib.pyplot as plt squares = [1,4,9,16,25] #修改線條的寬度: linewidth plt.plot(squares,linewidth=5) #設置圖標的標題,而且給座標軸加上標籤 plt.title('queares number',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('quares value',fontsize=24) # 設置刻度標記的大小 plt.tick_params(axis="both",labelsize=14) plt.show()
import matplotlib.pyplot as plt #捕入值 input_values = [1,2,3,4,5] #輸出值 squares = [1,4,9,16,25] #修改線條的寬度: linewidth plt.plot(input_values,squares,linewidth=5) #設置圖標的標題,而且給座標軸加上標籤 plt.title('queares number',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('quares value',fontsize=24) # 設置刻度標記的大小 plt.tick_params(axis="both",labelsize=14) plt.show()
import matplotlib.pyplot as plt plt.scatter(2,4) plt.show()
import matplotlib.pyplot as plt plt.scatter(2,4) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) plt.show()
import matplotlib.pyplot as plt x_values = [1,2,3,4,5] y_values = [1,4,9,16,25] plt.scatter(x_values,y_values,s=100) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) plt.show()
import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x ** 2 for x in x_values] plt.scatter(x_values,y_values,s=100) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) #設置每一個座標軸的取值範圍 plt.axis([0,1100,0,1100000]) plt.show()
# 自定義顏色 import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x ** 2 for x in x_values] plt.scatter(x_values,y_values,c='red',s=100) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) #設置每一個座標軸的取值範圍 plt.axis([0,1100,0,1100000]) plt.show()
# 自定義顏色 import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x ** 2 for x in x_values] #參數c表示紅綠藍3種顏色的份量 plt.scatter(x_values,y_values,c=(0,0.5,0.2),s=100) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) #設置每一個座標軸的取值範圍 plt.axis([0,1100,0,1100000]) plt.show()
# 自定義顏色 import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x ** 2 for x in x_values] # 將參數c設置爲一個y值的列表,使用參數cmap告訴plot使用哪一個顏色映射 plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=100) #設置圖標標題,而且給座標軸加上標籤 plt.title('squares numbers',fontsize=24) plt.xlabel('value',fontsize=24) plt.ylabel('squares of value',fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis="both",which='major',labelsize=14) #設置每一個座標軸的取值範圍 plt.axis([0,1100,0,1100000]) # plt.show() # bbox_inches='tight' -->將圖表多餘的空白區域哉減掉 # 保存圖片爲squares1.png plt.savefig('squares1.png',bbox_inches='tight')
import matplotlib.pyplot as plt # plt.scatter(2,4) x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] # plt.scatter(x_values, y_values,c='red', s=50) ## 參數c表示紅綠藍3種顏色的份量 # plt.scatter(x_values, y_values,c=(0,0.5,0.2), s=50) ## 將參數c設置爲一個y值的列表,使用參數cmap告訴plot使用哪一個顏色映射 plt.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Reds, s=50) # 設置圖標標題,而且 給座標軸加上標籤 plt.title('squares numbers', fontsize=24) plt.xlabel('value', fontsize=24) plt.ylabel('square of value', fontsize=14) # 設置刻度的標記大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每一個座標軸的取值範圍 plt.axis([0,1100,0,1100000]) # plt.show() # 保存圖片爲squares22.png plt.savefig('squares22.png',bbox_inches='tight')
# 隨機漫步 from random import choice class RandomWalk(): """-個生成隨機漫步數據的類""" def __init__(self,num_points=5000): """初始化隨機漫步的屬性""" self.num_points = num_points # 全部隨機漫步都始於(0,0) self.x_values = [0] self.y_values = [0] def fill_walk(self): """計算隨機漫步包含的全部點""" # 不斷漫步,直到列表達到指定的長度 while len(self.x_values) < self.num_points: # 決定前進方向以及沿着這個方向前進的距離 x_direction = choice([1,-1]) x_distance = choice([0,1,2,3,4]) x_step = x_direction * x_distance y_direction = choice([1,-1]) y_distance = choice([0,1,2,3,4]) y_step = y_direction * y_distance # 拒絕原地踏步 if x_step == 0 and y_step ==0: continue # 計算下一個點的x和y的值 next_x =self.x_values[-1] + x_step next_y =self.y_values[-1] + y_step # # 不斷漫步,直到列表達到指定的長度 while len(self.x_values) < self.num_points: # 決定前進方向以及沿着這個方向前進的距離 x_direction = choice([1, -1]) x_distance = choice([0, 1, 2, 3, 4]) x_step = x_direction * x_distance y_direction = choice([1, -1]) y_distance = choice([0, 1, 2, 3, 4]) y_step = y_direction * y_distance # 決絕原地踏步 if x_step == 0 and y_step == 0: continue # 計算下一個點的x和y的值 next_x = self.x_values[-1] + x_step next_y = self.y_values[-1] + y_step # self.x_values.append(next_x) self.y_values.append(next_y)
import matplotlib.pyplot as plt from 示例.mpl_squares import RandomWalk # 建立RandomWalk實例,而且將包含的點都繪製出來 rw = RandomWalk() rw.fill_walk() # 給點着色 point_numbers = list(range(rw.num_points)) plt.scatter(rw.x_values, rw.y_values, c=point_numbers,cmap=plt.cm.Greens,s=15) # 隱藏邊框 # plt.axes().get_xaxis().set_visible(False) # plt.axes().get_yaxis().set_visible(False) plt.show()
import matplotlib.pyplot as plt from 示例.mpl_squares import RandomWalk while True: # 建立RandomWalk實例,而且將包含的點都繪製出來 rw = RandomWalk() rw.fill_walk() plt.scatter(rw.x_values, rw.y_values, s=15) # 隱藏邊框 # plt.axes().get_xaxis().set_visible(False) # plt.axes().get_yaxis().set_visible(False) plt.show() keep_running = input('繼續漫步嗎?(y/n)') if keep_running == 'n': break
繼續漫步嗎?(y/n) y
import matplotlib.pyplot as plt from 示例.mpl_squares import RandomWalk # 建立RandomWalk實例,而且將包含的點都繪製出來 rw = RandomWalk() rw.fill_walk() # 給點着色 point_numbers = list(range(rw.num_points)) plt.scatter(0,0,c='green',s=100) plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',s=100) # plt.scatter(rw.x_values, rw.y_values, c=point_numbers,cmap=plt.cm.Greens,s=15) # 隱藏邊框 # plt.axes().get_xaxis().set_visible(False) # plt.axes().get_yaxis().set_visible(False) plt.show()
import matplotlib.pyplot as plt from 示例.mpl_squares import RandomWalk # 建立RandomWalk實例,而且將包含的點都繪製出來 rw = RandomWalk(500000) rw.fill_walk() # 給點着色 point_numbers = list(range(rw.num_points)) plt.scatter(0,0,c='green',s=100) plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',s=100) plt.scatter(rw.x_values, rw.y_values, c=point_numbers,cmap=plt.cm.Blues,s=1) # 隱藏邊框 # plt.axes().get_xaxis().set_visible(False) # plt.axes().get_yaxis().set_visible(False) plt.figure(dpi=128, figsize=(10,6)) plt.show()