婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python matplotlib工具欄源碼探析三之添加、刪除自定義工具項(xiàng)的案例詳解

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

熱門標(biāo)簽:螳螂科技外呼系統(tǒng)怎么用 qt百度地圖標(biāo)注 地圖地圖標(biāo)注有嘆號(hào) 400電話申請(qǐng)資格 正安縣地圖標(biāo)注app 電銷機(jī)器人系統(tǒng)廠家鄭州 阿里電話機(jī)器人對(duì)話 遼寧智能外呼系統(tǒng)需要多少錢 舉辦過冬奧會(huì)的城市地圖標(biāo)注

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

官方案例解析

下面對(duì)官方案例關(guān)鍵點(diǎn)做注釋說(shuō)明。

import matplotlib.pyplot as plt
# 設(shè)置工具欄使用工具欄管理器模式
plt.rcParams['toolbar'] = 'toolmanager'
# 導(dǎo)入工具項(xiàng)的基類ToolBase和ToolToggleBase
from matplotlib.backend_tools import ToolBase, ToolToggleBase

# 因?yàn)楣ぞ唔?xiàng)必須以類的形式添加,所以創(chuàng)建自定義基本工具項(xiàng)類,基類為ToolBase
class ListTools(ToolBase):
 # 該工具項(xiàng)的功能為列出工具欄管理器管理的所有工具項(xiàng)
 """List all the tools controlled by the `ToolManager`."""
 # 設(shè)置默認(rèn)快捷鍵和工具項(xiàng)描述
 default_keymap = 'm'
 description = 'List Tools'
 
 # 定義工具項(xiàng)被觸發(fā)時(shí)的動(dòng)作
 def trigger(self, *args, **kwargs):
  print('_' * 80)
  print("{0:12} {1:45} {2}".format(
   'Name (id)', 'Tool description', 'Keymap'))
  print('-' * 80)
  # 獲取工具欄管理器管理的所有工具項(xiàng)
  tools = self.toolmanager.tools
  # 輸出各個(gè)工具項(xiàng)
  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創(chuàng)建自定義切換式工具項(xiàng),切換式工具項(xiàng)在觸發(fā)時(shí)會(huì)在生效和失效兩種狀態(tài)之間切換
class GroupHideTool(ToolToggleBase):
 # 該工具項(xiàng)的功能為根據(jù)分組切換顯示/隱藏?cái)?shù)據(jù)元素
 """Show lines with a given gid."""
 # 設(shè)置默認(rèn)快捷鍵和工具項(xiàng)描述
 default_keymap = 'G'
 description = 'Show by gid'
 default_toggled = True
 
 # 構(gòu)造函數(shù)的參數(shù)gid為數(shù)據(jù)元素的分組
 def __init__(self, *args, gid, **kwargs):
  self.gid = gid
  super().__init__(*args, **kwargs)
 # 定義工具項(xiàng)生效時(shí)的方法
 def enable(self, *args):
  self.set_lines_visibility(True)
 # 定義工具項(xiàng)失效時(shí)的方法
 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屬性可以為數(shù)據(jù)元素分組
plt.plot([1, 2, 3], gid='mygroup')
plt.plot([2, 3, 4], gid='unknown')
plt.plot([3, 2, 1], gid='mygroup')

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

# 可以反復(fù)添加已存在的工具項(xiàng)
# 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')

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

# 新添加到工具欄管理器的工具項(xiàng)還不能直接使用,需要通過toolbar對(duì)象添加到當(dāng)前工具欄
# 如果不將自定義的工具項(xiàng)添加到工具欄管理器,直接使用toolbar對(duì)象添加則會(huì)報(bào)錯(cuò)
# 將自定義的工具項(xiàng)Show添加到內(nèi)置的navigation組的特定位置(即組內(nèi)第2個(gè)位置)
# 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()

官方案例運(yùn)行結(jié)果

運(yùn)行后自定義的Show按鈕處于生效狀態(tài),3條線全部顯示。

點(diǎn)擊Show按鈕,使之處理失效狀態(tài),mygroup組的兩條線不再顯示。

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

________________________________________________________________________________
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'}

總結(jié)

matplotlib支持兩種工具項(xiàng):基本工具項(xiàng)(基類ToolBase)和切換式工具項(xiàng)(基類ToolToggleBase)。
基本工具項(xiàng)需要注意定義trigger方法,即工具項(xiàng)被觸發(fā)時(shí)的動(dòng)作。
切換式工具項(xiàng)需要注意定義enabledisable方法,即生效和失效兩種狀態(tài)的動(dòng)作,如方法定義中牽扯到修改圖像,需要注意重繪圖像。
注意添加自定義工具項(xiàng)的流程!先將自定義的工具項(xiàng)添加到工具欄管理器,然后再添加到當(dāng)前工具欄!內(nèi)置工具項(xiàng)之所以不用添加到工具欄管理器是因?yàn)樗鼈儽旧砭鸵呀?jīng)添加在工具欄管理器!

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

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

標(biāo)簽:信陽(yáng) 阜新 昭通 濟(jì)源 合肥 淘寶好評(píng)回訪 隨州 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python matplotlib工具欄源碼探析三之添加、刪除自定義工具項(xiàng)的案例詳解》,本文關(guān)鍵詞  python,matplotlib,工具欄,源碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python matplotlib工具欄源碼探析三之添加、刪除自定義工具項(xiàng)的案例詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python matplotlib工具欄源碼探析三之添加、刪除自定義工具項(xiàng)的案例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区成人| 久久亚洲精品小早川怜子| 国产精品色哟哟| 国产精品区一区二区三区| 国产成人免费在线观看| 亚洲欧洲日韩一区二区三区| 欧美一区二区视频在线观看| 欧美色视频在线| 555夜色666亚洲国产免| 精品播放一区二区| 韩日精品视频一区| 91麻豆精品91久久久久同性| 亚洲成年人影院| 久久精品国产一区二区三区免费看| 欧洲国内综合视频| 在线91免费看| 成人小视频在线| 欧美在线观看18| 日韩美一区二区三区| 久久综合狠狠综合久久综合88| 日韩欧美国产1| 夜夜亚洲天天久久| 99久久久精品| 中文一区二区在线观看| 青青草伊人久久| 日韩伦理电影网| 国产福利一区在线| 亚洲乱码精品一二三四区日韩在线| 五月天亚洲精品| 色婷婷av一区二区三区软件 | 日韩欧美一卡二卡| 天天av天天翘天天综合网 | 亚洲成av人片| fc2成人免费人成在线观看播放| 精品一区二区三区的国产在线播放| 欧美aaa在线| 欧美高清www午色夜在线视频| 欧美成人艳星乳罩| 玖玖九九国产精品| 欧美一卡二卡三卡| 高清视频一区二区| 91久久久免费一区二区| 精品欧美乱码久久久久久 | 免费看欧美美女黄的网站| 日韩免费在线观看| 久国产精品韩国三级视频| 成人av在线播放网站| 91香蕉国产在线观看软件| 亚洲午夜免费电影| 久久中文娱乐网| 日韩不卡在线观看日韩不卡视频| 成人激情视频网站| 日韩高清不卡一区| 3atv在线一区二区三区| 99久久精品国产一区| 亚洲一区视频在线观看视频| 国产欧美日韩精品一区| 97超碰欧美中文字幕| 日韩国产欧美在线播放| 亚洲国产精品成人久久综合一区| 日本韩国一区二区| 国产黄色精品视频| 久久久久久99精品| 精品久久久久久久久久久久包黑料 | 亚洲成人自拍偷拍| 99视频一区二区| 4438成人网| 在线亚洲+欧美+日本专区| 国产一区二区三区免费| 日韩中文字幕一区二区三区| 1024国产精品| 国产精品毛片久久久久久| 一二三四区精品视频| 91福利在线观看| 国产99久久久久久免费看农村| 日韩欧美一二三四区| 三级成人在线视频| 日本中文一区二区三区| 中文字幕亚洲一区二区av在线| 欧洲精品在线观看| 一本色道**综合亚洲精品蜜桃冫| www.亚洲人| 在线欧美日韩国产| 国产乱国产乱300精品| 丝瓜av网站精品一区二区 | 精品处破学生在线二十三| 国产成a人亚洲精| 欧美综合一区二区| 激情av综合网| 欧美性色综合网| 精品国产青草久久久久福利| 激情小说欧美图片| 一本一本大道香蕉久在线精品| 在线观看日韩av先锋影音电影院| 欧美日韩久久不卡| 日韩女优av电影| 亚洲国产综合人成综合网站| 狠狠色狠狠色综合日日91app| 国产一区二区三区视频在线播放| 99久久777色| 欧美一级淫片007| 中文字幕国产精品一区二区| 日本一不卡视频| 欧美主播一区二区三区| 制服丝袜中文字幕一区| 精品久久国产字幕高潮| 国产精品久久久久久一区二区三区| 精品裸体舞一区二区三区| 一个色综合网站| 欧美精品精品一区| 欧美日韩一级片在线观看| 精品亚洲国产成人av制服丝袜| 蜜桃精品视频在线| 日韩美一区二区三区| 色婷婷综合视频在线观看| 一区二区三区高清在线| 欧美绝品在线观看成人午夜影视| 亚洲图片欧美视频| av资源网一区| 免费看欧美女人艹b| 国产精品午夜电影| 在线一区二区三区四区| 日本中文字幕一区二区有限公司| 精品久久久久久综合日本欧美| 国产一区二区按摩在线观看| 欧美一卡二卡在线| 欧美综合一区二区| 成人av电影在线网| 免费在线视频一区| 久久综合狠狠综合久久激情| 豆国产96在线|亚洲| 久久精品国产网站| 国产精品福利一区二区| 国产欧美一区二区三区鸳鸯浴 | 99久久久免费精品国产一区二区| 亚洲欧美日韩精品久久久久| 久久久另类综合| 欧美日本精品一区二区三区| 欧美一区二区视频在线观看2022| 91亚洲国产成人精品一区二区三| 精品亚洲欧美一区| 日本欧洲一区二区| 成人a免费在线看| 91网上在线视频| 欧美无乱码久久久免费午夜一区| 成人免费高清在线| 欧美日韩亚洲丝袜制服| 一本色道**综合亚洲精品蜜桃冫| 不卡的电影网站| 91黄色免费网站| 久久久精品黄色| 亚洲欧美视频一区| 美女视频黄久久| 国产成人欧美日韩在线电影| 51精品视频一区二区三区| 久久尤物电影视频在线观看| 国产欧美精品一区二区色综合 | 在线免费一区三区| 精品国产sm最大网站| 中文字幕高清一区| 亚洲激情自拍偷拍| 国产精品一区免费视频| 日韩欧美一级二级三级| 高潮精品一区videoshd| 欧美日韩久久久| 色婷婷精品久久二区二区蜜臂av | 自拍视频在线观看一区二区| 久久精品欧美日韩| 亚洲国产一区二区视频| 国产成人亚洲综合a∨猫咪| 福利一区在线观看| 色狠狠综合天天综合综合| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲18女电影在线观看| 国产在线精品视频| 67194成人在线观看| 国产人成一区二区三区影院| 北条麻妃国产九九精品视频| 这里只有精品视频在线观看| 亚洲一区二区高清| 91黄视频在线| 韩国欧美国产一区| 久久男人中文字幕资源站| 韩国精品一区二区| 国产精品小仙女| 精品一区二区三区久久| 成人国产电影网| 中文字幕亚洲一区二区av在线 | 成人国产精品免费观看| 中文字幕一区二区三中文字幕| 91 com成人网| 国产黄色精品视频| 亚洲人成小说网站色在线| jvid福利写真一区二区三区| 激情成人综合网| 亚洲成人av电影在线| 91精品国产综合久久福利软件| 日本一区二区三区dvd视频在线| 在线观看91av| 亚洲一区视频在线|