日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matplotlib基础(part2)--图形对象

發布時間:2023/12/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matplotlib基础(part2)--图形对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,這個筆記以例子為主。
編輯器:EditPlus


文章目錄

    • 圖形對象(圖形窗口)
        • 案例1(繪制一個窗口)
        • 案例2(繪制兩個窗口)
      • 設置當前窗口的參數
      • 子圖
        • 矩陣式布局(不支持單元格合并)
        • 網格式布局(支持單元格合并)
        • 自由式布局
      • 刻度定位器
      • 刻度網格線
      • 半對數坐標


圖形對象(圖形窗口)

  • 繪制圖形窗口語法
mp.figure('窗口標題欄文本', #窗口標題欄文本figsize = (4, 3), #窗口大小 <元祖>dpi = 120, #像素密度facecolor = '' #圖表背景色)

案例1(繪制一個窗口)

代碼:

import matplotlib.pyplot as mpmp.figure('窗口標題欄文本',figsize = (4, 3),dpi = 120,facecolor = 'r')mp.show()

圖像:

備注:mp.figure方法不僅可以構建一個新窗口,如果已經構建過title='A’的窗口,又使用figure方法構建了title=‘A’ 的窗口的話,mp將不會創建新的窗口,而是把title='A’的窗口置為當前操作窗口。

案例2(繪制兩個窗口)

代碼:

import matplotlib.pyplot as mpmp.figure('Figure A', facecolor = 'gray') mp.figure('Figure B', facecolor = 'lightgray')mp.show()

圖像:

設置當前窗口的參數

  • 語法
# 設置圖表標題 顯示在圖表上方 mp.title(title, fontsize=12) # 設置水平軸的文本 mp.xlabel(x_label_str, fontsize=12) # 設置垂直軸的文本 mp.ylabel(y_label_str, fontsize=12) # 設置刻度參數 labelsize設置刻度字體大小 mp.tick_params(labelsize= 8) # 設置圖表網格線 mp.grid(linestyle='') #linestyle設置網格線的樣式# - or solid 粗線# -- or dashed 虛線# -. or dashdot 點虛線# : or dotted 點線# 設置緊湊布局,把圖表相關參數都顯示在窗口中 mp.tight_layout()
  • 舉個例子

代碼:

import matplotlib.pyplot as mpmp.figure('Figure B', facecolor = 'lightgray') # 設置圖表標題 顯示在圖表上方 mp.title('Figure A', fontsize=15) # 設置水平軸的文本 mp.xlabel('X', fontsize=12) # 設置垂直軸的文本 mp.ylabel('Y', fontsize=12) # 設置刻度參數 labelsize設置刻度字體大小 mp.tick_params(labelsize= 10) # 設置圖表網格線 mp.grid(linestyle='--') # 設置緊湊布局,把圖表相關參數都顯示在窗口中 mp.tight_layout() mp.show()

圖像:

子圖

矩陣式布局(不支持單元格合并)

  • 語法
# 拆分矩陣 mp.subplot(rows, cols, num) #rows: 行數 ,cols: 列數,num:子圖編號 #比如: mp.subplot(3, 3, 5) #操作3*3的矩陣中編號為5的子圖

圖示:

  • 例子(繪制9宮格)

代碼:

import matplotlib.pyplot as mpmp.figure('Subplot', facecolor='lightgray')for i in range(1, 10):mp.subplot(3, 3, i)mp.text(0.5, 0.5, i, size=36, ha='center',va='center')mp.xticks([]) #mp.xticks()為設置x軸刻度mp.yticks([]) #mp.yticks()為設置y軸刻度mp.tight_layout()mp.show()

圖像:

網格式布局(支持單元格合并)

  • 語法
import matplotlib.gridspec as mg# 調用GridSpec方法拆分網格式布局 gs = mg.GridSpec(rows, cols) # rows: 行數 # cols: 列數#比如: gs = mg.GridSpec(3, 3) #拆分成3行3列# 合并0行與0、1列為一個子圖表 mp.subplot(gs[0, :2])
  • 例子

代碼:

import matplotlib.pyplot as mp import matplotlib.gridspec as mgmp.figure('GridLayout', facecolor='lightgray') #拆分成3行3列 gridsubs = mp.GridSpec(3, 3) # 合并0行、0和1列為一個子圖 mp.subplot(gridsubs[0, :2]) mp.text(0.5, 0.5, 1, ha='center', va='center', size=36) mp.tight_layout() mp.xticks([]) mp.yticks([])mp.show()

圖像:

自由式布局

  • 語法
import matplotlib.gridspec as mgmp.figure('Flow Layout', facecolor='lightgray') # 設置圖標的位置,給出左下角點坐標與寬高即可 mp.axes([left_bottom_x, left_bottom_y, width, height]) # left_bottom_x: 坐下角點x坐標 # left_bottom_x: 坐下角點y坐標 # width: 寬度 # height: 高度#比如: mp.axes([0.03, 0.03, 0.94, 0.94])
  • 例子

代碼:

import matplotlib.pyplot as mp import matplotlib.gridspec as mgmp.figure('FlowLayout', facecolor='lightgray')mp.axes([0.08, 0.08, 0.6, 0.5]) mp.xticks([]) mp.yticks([]) mp.axes([0.08, 0.6, 0.6, 0.3]) mp.xticks([]) mp.yticks([])mp.show()

圖像:

刻度定位器

  • 語法
# 獲取當前坐標軸 ax = mp.gca() # 設置水平坐標軸的主刻度定位器 ax.xaxis.set_major_locator(mp.NullLocator()) # 設置水平坐標軸的次刻度定位器為多點定位器,間隔0.1 ax.xaxis.set_minor_locator(mp.MultipleLocator(0.1))

常用刻度器如下:

# 空定位器:不繪制刻度 mp.NullLocator() # 最大值定位器:最多繪制nbins+1個刻度 mp.MaxNLocator(nbins=3) # 定點定位器:根據locs參數中的位置繪制刻度 mp.FixedLocator(locs=[0, 2.5, 5, 7.5, 10]) # 自動定位器:由系統自動選擇刻度的繪制位置 mp.AutoLocator() # 索引定位器:由offset確定起始刻度,由base確定相鄰刻度的間隔 mp.IndexLocator(offset=0.5, base=1.5) # 多點定位器:從0開始,按照參數指定的間隔(缺省1)繪制刻度 mp.MultipleLocator() # 線性定位器:等分numticks-1份,繪制numticks個刻度 mp.LinearLocator(numticks=21) # 對數定位器:以base為底,繪制刻度 mp.LogLocator(base=2)
  • 例子(繪制一個數軸)

代碼:

import matplotlib.pyplot as mp import matplotlib.gridspec as mgmp.figure('Locators', facecolor='lightgray') # 獲取當前坐標軸 ax = mp.gca() # 隱藏除底軸以外的所有坐標軸 ax.spines['left'].set_color('none') ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') # 將底坐標軸調整到子圖中心位置 ax.spines['bottom'].set_position(('data', 0))mp.xlim(0, 10) mp.yticks([]) # 設置水平坐標軸的主刻度定位器 ma_loc = mp.MultipleLocator(1) ax.xaxis.set_major_locator(ma_loc) # 設置水平坐標軸的次刻度定位器為多點定位器,間隔0.1 mi_loc = mp.MultipleLocator(0.1) ax.xaxis.set_minor_locator(mi_loc) # 標記所用刻度定位器類名 mp.show()

圖像:

刻度網格線

  • 語法
ax = mp.gca() #繪制刻度網格線 ax.grid(which='', # 'major'/'minor' <-> '主刻度'/'次刻度' axis='', # 'x'/'y'/'both' <-> 繪制x或y軸linewidth=1, # 線寬linestyle='', # 線型color='', # 顏色alpha=0.5 # 透明度 )
  • 舉個例子

繪制曲線y = [1, 10, 100, 1000, 100, 10, 1],然后設置y軸刻度網格線。

代碼:

import numpy as np import matplotlib.pyplot as mpy = [1, 10, 100, 1000, 100, 10, 1] mp.figure('Grid Line', facecolor='lightgray') # 設置刻度定位器 ax = mp.gca() y_ma_loc = mp.MultipleLocator(250) ax.yaxis.set_major_locator(y_ma_loc) y_mi_loc = mp.MultipleLocator(50) ax.yaxis.set_minor_locator(y_mi_loc)# 設置刻度網格線 ax.grid(which='major', axis='y',linewidth=0.75, color='orangered',linestyle='-') ax.grid(which='minor', axis='y',linewidth=0.25, color='orangered',linestyle='-')mp.plot(y, 'o-', color='dodgerblue') mp.show()

圖像:

半對數坐標

  • 舉個例子

y軸將以指數方式遞增。基于半對數坐標繪制第2個子圖,表示曲線:y = [1, 10, 100, 1000, 100 10, 1]

代碼:

import numpy as np import matplotlib.pyplot as mpy = [1, 10, 100, 1000, 100, 10, 1] mp.figure('Grid Line', facecolor='lightgray')mp.subplot(211) # 設置刻度定位器 ax = mp.gca() y_ma_loc = mp.MultipleLocator(250) ax.yaxis.set_major_locator(y_ma_loc) y_mi_loc = mp.MultipleLocator(50) ax.yaxis.set_minor_locator(y_mi_loc)# 設置刻度網格線 ax.grid(which='major', axis='y',linewidth=0.75, color='orangered',linestyle='-') ax.grid(which='minor', axis='y',linewidth=0.25, color='orangered',linestyle='-')mp.plot(y, 'o-', color='dodgerblue')mp.subplot(212) # 設置刻度定位器 ax = mp.gca() y_ma_loc = mp.MultipleLocator(250) ax.yaxis.set_major_locator(y_ma_loc) y_mi_loc = mp.MultipleLocator(50) ax.yaxis.set_minor_locator(y_mi_loc)# 設置刻度網格線 ax.grid(which='major', axis='both',linewidth=0.75, color='orangered',linestyle='-') ax.grid(which='minor', axis='both',linewidth=0.25, color='orangered',linestyle='-')# 半對數坐標顯示圖形 mp.semilogy(y, 'o-', color='dodgerblue')mp.show()

圖像:

總結

以上是生活随笔為你收集整理的Matplotlib基础(part2)--图形对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。