亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解

python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解

熱門標簽:螳螂科技外呼系統怎么用 qt百度地圖標注 地圖地圖標注有嘆號 400電話申請資格 正安縣地圖標注app 電銷機器人系統廠家鄭州 阿里電話機器人對話 遼寧智能外呼系統需要多少錢 舉辦過冬奧會的城市地圖標注

matplotlib工具欄源碼探析二(添加、刪除內置工具項)探討了工具欄內置工具項的管理,除了內置工具項,很多場景中需要自定義工具項,官方給出了案例https://matplotlib.org/gallery/user_interfaces/toolmanager_sgskip.html,主要基于matplotlib.backend_managers.ToolManager類實現,即使用工具欄管理器模式。

官方案例解析

下面對官方案例關鍵點做注釋說明。

import matplotlib.pyplot as plt
# 設置工具欄使用工具欄管理器模式
plt.rcParams['toolbar'] = 'toolmanager'
# 導入工具項的基類ToolBase和ToolToggleBase
from matplotlib.backend_tools import ToolBase, ToolToggleBase

# 因為工具項必須以類的形式添加,所以創建自定義基本工具項類,基類為ToolBase
class ListTools(ToolBase):
 # 該工具項的功能為列出工具欄管理器管理的所有工具項
 """List all the tools controlled by the `ToolManager`."""
 # 設置默認快捷鍵和工具項描述
 default_keymap = 'm'
 description = 'List Tools'
 
 # 定義工具項被觸發時的動作
 def trigger(self, *args, **kwargs):
  print('_' * 80)
  print("{0:12} {1:45} {2}".format(
   'Name (id)', 'Tool description', 'Keymap'))
  print('-' * 80)
  # 獲取工具欄管理器管理的所有工具項
  tools = self.toolmanager.tools
  # 輸出各個工具項
  for name in sorted(tools):
   if not tools[name].description:
    continue
   keys = ', '.join(sorted(self.toolmanager.get_tool_keymap(name)))
   print("{0:12} {1:45} {2}".format(
    name, tools[name].description, keys))
  print('_' * 80)
  print("Active Toggle tools")
  print("{0:12} {1:45}".format("Group", "Active"))
  print('-' * 80)
  for group, active in self.toolmanager.active_toggle.items():
   print("{0:12} {1:45}".format(str(group), str(active)))

# 基于ToolToggleBase創建自定義切換式工具項,切換式工具項在觸發時會在生效和失效兩種狀態之間切換
class GroupHideTool(ToolToggleBase):
 # 該工具項的功能為根據分組切換顯示/隱藏數據元素
 """Show lines with a given gid."""
 # 設置默認快捷鍵和工具項描述
 default_keymap = 'G'
 description = 'Show by gid'
 default_toggled = True
 
 # 構造函數的參數gid為數據元素的分組
 def __init__(self, *args, gid, **kwargs):
  self.gid = gid
  super().__init__(*args, **kwargs)
 # 定義工具項生效時的方法
 def enable(self, *args):
  self.set_lines_visibility(True)
 # 定義工具項失效時的方法
 def disable(self, *args):
  self.set_lines_visibility(False)

 def set_lines_visibility(self, state):
  for ax in self.figure.get_axes():
   for line in ax.get_lines():
    if line.get_gid() == self.gid:
     line.set_visible(state)
  # 注意!在圖像生成之后,修改圖像中的元素必須重繪
  self.figure.canvas.draw()


fig = plt.figure()
# 注意通過gid屬性可以為數據元素分組
plt.plot([1, 2, 3], gid='mygroup')
plt.plot([2, 3, 4], gid='unknown')
plt.plot([3, 2, 1], gid='mygroup')

# 將自定義的工具項添加添加到工具欄管理器,格式為 工具項名稱 工具項類 其他參數
fig.canvas.manager.toolmanager.add_tool('List', ListTools)
fig.canvas.manager.toolmanager.add_tool('Show', GroupHideTool, gid='mygroup')

# 可以反復添加已存在的工具項
# Add an existing tool to new group `foo`.
# It can be added as many times as we want
fig.canvas.manager.toolbar.add_tool('zoom', 'foo')

# 刪除工具項
# Remove the forward button
fig.canvas.manager.toolmanager.remove_tool('forward')

# 新添加到工具欄管理器的工具項還不能直接使用,需要通過toolbar對象添加到當前工具欄
# 如果不將自定義的工具項添加到工具欄管理器,直接使用toolbar對象添加則會報錯
# 將自定義的工具項Show添加到內置的navigation組的特定位置(即組內第2個位置)
# To add a custom tool to the toolbar at specific location inside
# the navigation group
fig.canvas.manager.toolbar.add_tool('Show', 'navigation', 1)
#fig.canvas.manager.toolbar.add_tool('List', 'navigation', 2)
plt.show()

官方案例運行結果

運行后自定義的Show按鈕處于生效狀態,3條線全部顯示。

點擊Show按鈕,使之處理失效狀態,mygroup組的兩條線不再顯示。

由于案例中僅將List工具項添加到工具欄管理器,但是沒有添加到工具欄中,因此List工具項未在工具欄中顯示。但是List工具項的快捷鍵m是生效的,在界面上按快捷鍵m,控制臺輸出以下信息。

________________________________________________________________________________
Name (id) Tool description        Keymap
--------------------------------------------------------------------------------
List   List Tools         m
Show   Show by gid         G
allnav  Enable all axes toolmanager     a
back   Back to previous view       MouseButton.BACK, backspace, c, left
copy   Copy the canvas figure to clipboard   cmd+c, ctrl+c
fullscreen Toggle fullscreen mode      ctrl+f, f
grid   Toggle major grids       g
grid_minor Toggle major and minor grids
help   Print tool list, shortcuts and description f1
home   Reset original view       h, home, r
nav   Enable one axes toolmanager     1, 2, 3, 4, 5, 6, 7, 8, 9
pan   Pan axes with left mouse, zoom with right  p
quit   Quit the figure        cmd+w, ctrl+w, q
quit_all  Quit all figures
save   Save the figure        ctrl+s, s
subplots  Configure subplots
xscale  Toggle scale X axis       L, k
yscale  Toggle scale Y axis       l
zoom   Zoom to rectangle        o
________________________________________________________________________________
Active Toggle tools
Group  Active
--------------------------------------------------------------------------------
default  None
None   {'Show'}

總結

matplotlib支持兩種工具項:基本工具項(基類ToolBase)和切換式工具項(基類ToolToggleBase)。
基本工具項需要注意定義trigger方法,即工具項被觸發時的動作。
切換式工具項需要注意定義enabledisable方法,即生效和失效兩種狀態的動作,如方法定義中牽扯到修改圖像,需要注意重繪圖像。
注意添加自定義工具項的流程!先將自定義的工具項添加到工具欄管理器,然后再添加到當前工具欄!內置工具項之所以不用添加到工具欄管理器是因為它們本身就已經添加在工具欄管理器!

到此這篇關于matplotlib工具欄源碼探析三之添加、刪除自定義工具項的文章就介紹到這了,更多相關matplotlib工具欄內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python判斷圖片寬度和高度后刪除圖片的方法
  • Python列表刪除重復元素與圖像相似度判斷及刪除實例代碼
  • 使用python如何刪除同一文件夾下相似的圖片
  • python matplotlib繪圖實現刪除重復冗余圖例的操作
  • python3 刪除所有自定義變量的操作
  • python刪除csv文件的行列
  • python讀寫刪除復制文件操作方法詳細實例總結
  • Python 有可能刪除 GIL 嗎?
  • Python中刪除文件的幾種方法實例
  • 詳解Python遍歷列表時刪除元素的正確做法
  • Python列表元素刪除和remove()方法詳解
  • 教你怎么用python刪除相似度高的圖片

標簽:信陽 阜新 昭通 濟源 合肥 淘寶好評回訪 隨州 興安盟

巨人網絡通訊聲明:本文標題《python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解》,本文關鍵詞  python,matplotlib,工具欄,源碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解》相關的同類信息!
  • 本頁收集關于python matplotlib工具欄源碼探析三之添加、刪除自定義工具項的案例詳解的相關信息資訊供網民參考!
  • 推薦文章
    黄色免费三级| 精品视频免费观看| 免费的黄视频| 国产精品1024永久免费视频| 欧美18性精品| 亚洲第一色在线| 欧美日本免费| 国产一区二区精品久久91| 欧美日本免费| 国产视频一区二区在线观看| a级黄色毛片免费播放视频| 尤物视频网站在线观看| 国产高清视频免费观看| 99久久精品国产麻豆| 黄色免费三级| 欧美18性精品| 久久成人综合网| 日本伦理黄色大片在线观看网站| 免费一级片在线| 精品国产香蕉伊思人在线又爽又黄| 国产精品自拍在线| 四虎久久精品国产| 精品视频在线观看一区二区三区| 韩国三级视频网站| 美国一区二区三区| 欧美激情一区二区三区在线播放 | 欧美激情伊人| 一a一级片| 九九久久99| 成人高清视频免费观看| 韩国三级视频网站| 精品视频一区二区| 日韩中文字幕在线亚洲一区| 日日夜夜婷婷| 成人免费一级纶理片| 日韩专区一区| 国产91精品系列在线观看| 国产激情视频在线观看| 亚洲www美色| 沈樵在线观看福利| 精品国产亚洲一区二区三区| 在线观看成人网| 美国一区二区三区| 国产网站免费观看| 一级片免费在线观看视频| 久久精品成人一区二区三区| 日日爽天天| 欧美一级视频免费观看| 天天做人人爱夜夜爽2020| 日日日夜夜操| 久久久久久久男人的天堂| 国产麻豆精品免费密入口| 午夜久久网| 欧美激情一区二区三区视频高清 | 999久久久免费精品国产牛牛| 精品国产一级毛片| 精品视频在线观看一区二区| 午夜欧美成人久久久久久| 国产亚洲免费观看| 国产91精品系列在线观看| 九九久久99| a级黄色毛片免费播放视频| 四虎影视精品永久免费网站| 精品国产香蕉在线播出| 日韩在线观看网站| 欧美α片无限看在线观看免费| 国产极品精频在线观看| 香蕉视频久久| 成人高清视频免费观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日日夜夜婷婷| 欧美爱爱动态| 可以免费看污视频的网站| 国产一级生活片| 精品久久久久久中文| 国产一区二区精品| 999精品视频在线| 99久久精品费精品国产一区二区| 91麻豆精品国产片在线观看| 韩国三级一区| 成人a大片在线观看| 久草免费在线观看| 亚洲精品久久玖玖玖玖| 国产成人精品影视| 日韩欧美一二三区| 国产极品白嫩美女在线观看看| 久久国产一久久高清| 一本伊大人香蕉高清在线观看| 日韩女人做爰大片| 尤物视频网站在线| 黄色免费三级| 欧美电影免费| 午夜欧美成人香蕉剧场| 日韩avdvd| 亚州视频一区二区| 免费毛片基地| 日韩女人做爰大片| 日韩综合| 韩国三级一区| 国产视频久久久| 国产一区二区精品久久91| 999久久狠狠免费精品| 国产91精品露脸国语对白| 国产韩国精品一区二区三区| 国产一区二区精品久久| 97视频免费在线观看| 色综合久久天天综合观看| 亚洲第一页乱| 九九精品在线| 成人影院久久久久久影院| 国产a毛片| 欧美大片aaaa一级毛片| 国产国语在线播放视频| 美女被草网站| 日韩字幕在线| 国产伦久视频免费观看视频| 天天色成人网| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产不卡高清| 成人在免费观看视频国产| 国产一区二区高清视频| 一级毛片视频播放| 日韩av片免费播放| 精品国产三级a| 99色播| 色综合久久久久综合体桃花网| 亚洲天堂免费| 高清一级片| 精品国产亚洲一区二区三区| 欧美a级v片不卡在线观看| 亚久久伊人精品青青草原2020| 精品视频在线观看免费| 中文字幕97| 91麻豆精品国产自产在线 | 国产a一级| 久久国产精品自由自在| 亚飞与亚基在线观看| 九九精品影院| 久久久久久久网| 亚洲天堂免费| 天天色成人| 91麻豆精品国产高清在线| 韩国三级香港三级日本三级| 在线观看成人网| a级毛片免费全部播放| 国产亚洲免费观看| 九九热国产视频| 亚洲精品中文一区不卡| 99色视频| 美女免费精品视频在线观看| 久久久久久久男人的天堂| 精品国产一区二区三区久| 欧美α片无限看在线观看免费| 欧美日本免费| 999精品视频在线| 国产一区二区高清视频| 亚洲第一视频在线播放| 一本高清在线| 日韩av成人| 成人高清免费| 成人免费观看男女羞羞视频| 欧美另类videosbestsex高清| 日本免费乱人伦在线观看| 精品久久久久久中文字幕一区| 精品久久久久久综合网| 国产精品1024在线永久免费| 久久国产精品自由自在| 中文字幕一区二区三区 精品| 四虎影视库| 亚洲精品中文字幕久久久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 免费毛片基地| 99色播| 99久久精品国产免费| 久久99青青久久99久久| 99色视频在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产91素人搭讪系列天堂| 久久国产精品只做精品| 精品在线观看国产| 高清一级毛片一本到免费观看| 天天做日日爱| 四虎久久影院| 国产精品免费精品自在线观看| 亚飞与亚基在线观看| 日本特黄一级| 欧美激情影院| 久草免费资源| 九九久久国产精品大片| 一级毛片看真人在线视频| 欧美激情一区二区三区视频高清 | 国产精品自拍在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 九九精品在线| 国产精品自拍在线| 一级片免费在线观看视频| 欧美激情一区二区三区视频高清| 日日夜夜婷婷| 沈樵在线观看福利| 欧美激情一区二区三区在线播放|