python Matplotlib底圖中鼠標(biāo)滑過顯示隱藏內(nèi)容的實(shí)例代碼
在使用Matplotlib畫圖過程中,有些內(nèi)容必須鼠標(biāo)點(diǎn)擊或者劃過才可以顯示,這個(gè)問題可以依賴于annotate(s='str' ,xy=(x,y) ,xytext=(l1,l2) ,..)
這個(gè)函數(shù),其中s 為注釋文本內(nèi)容 , xy 為被注釋的坐標(biāo)點(diǎn), xytext 為注釋文字的坐標(biāo)位置,其他參數(shù)可自行百度哈。當(dāng)鼠標(biāo)滑過時(shí)候,將其設(shè)置為可見,默認(rèn)情況下為隱藏。下面是一個(gè)小例子:
# -*- coding: UTF-8 -*- import matplotlib.pyplot as plt fig = plt.figure() po_annotation = [] for i in range(0, 10): x = i y = x**2 point, = plt.plot(x, y, 'o') annotation = plt.annotate(('x='+str(x), 'y='+str(y)), xy=(x+0.1, y+0.1), xycoords='data', xytext=(x+0.7, y+0.7), textcoords='data', horizontalalignment="left", arrowprops=dict(arrowstyle="simple",connectionstyle="arc3,rad=-0.1"), bbox=dict(boxstyle="round", facecolor="w",edgecolor="0.5", alpha=0.9) ) annotation.set_visible(False) po_annotation.append([point, annotation]) def on_move(event): visibility_changed = False for point, annotation in po_annotation: should_be_visible = (point.contains(event)[0] == True) # print(point.contains(event)[0]) if should_be_visible != annotation.get_visible(): visibility_changed = True annotation.set_visible(should_be_visible) if visibility_changed: plt.draw() on_move_id = fig.canvas.mpl_connect('motion_notify_event', on_move) plt.show()
主要思路為:
•創(chuàng)建[點(diǎn),注釋]對的列表,默認(rèn)情況下,注釋不可見
•每次檢測到鼠標(biāo)移動(dòng)時(shí),都會(huì)注冊一個(gè)函數(shù)“on_move”
•on_move函數(shù)遍歷每個(gè)點(diǎn)和注釋,如果鼠標(biāo)現(xiàn)在位于其中一個(gè)點(diǎn)上,則使其關(guān)聯(lián)的注釋可見,如果不是,則使其不可見。
運(yùn)行出來的效果為: 當(dāng)鼠標(biāo)滑過時(shí),可以顯示其相應(yīng)坐標(biāo):
總結(jié)
以上所述是小編給大家介紹的python Matplotlib底圖中鼠標(biāo)滑過顯示隱藏內(nèi)容的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- 處理Selenium3+python3定位鼠標(biāo)懸停才顯示的元素
- Python實(shí)現(xiàn)監(jiān)控鍵盤鼠標(biāo)操作示例【基于pyHook與pythoncom模塊】
- Python使用pyautogui模塊實(shí)現(xiàn)自動(dòng)化鼠標(biāo)和鍵盤操作示例
- python3.6+opencv3.4實(shí)現(xiàn)鼠標(biāo)交互查看圖片像素
- Python模擬鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)方法(將通過實(shí)例自動(dòng)化模擬在360瀏覽器中自動(dòng)搜索python)
- Python使用matplotlib繪制三維圖形示例
- Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法
- Python使用matplotlib和pandas實(shí)現(xiàn)的畫圖操作【經(jīng)典示例】
- python matplotlib繪圖,修改坐標(biāo)軸刻度為文字的實(shí)例
- 對python中Matplotlib的坐標(biāo)軸的坐標(biāo)區(qū)間的設(shè)定實(shí)例講解
- Python matplotlib 畫圖窗口顯示到gui或者控制臺(tái)的實(shí)例
- Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息示例
相關(guān)文章
pytorch報(bào)錯(cuò)問題:ValueError: num_samples should be
這篇文章主要介紹了pytorch報(bào)錯(cuò)問題:ValueError: num_samples should be a positive integer value, but got num_samples=0的解決方案,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python2.7讀取文件夾下所有文件名稱及內(nèi)容的方法
python,本身來說是一門高級(jí)編程語言,python它入門簡單,有基礎(chǔ)的學(xué)起來很快就能有簡單的應(yīng)用,但是在非常高的抽象計(jì)算中,高級(jí)的python程序設(shè)計(jì)也是非常難學(xué)的。接下來給大家介紹python2.7讀取文件夾下所有文件名稱及內(nèi)容的方法,一起看看吧2018-02-02Python使用20行代碼實(shí)現(xiàn)微信聊天機(jī)器人
這篇文章主要介紹了Python使用20行代碼實(shí)現(xiàn)微信聊天機(jī)器人,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python實(shí)現(xiàn)switch/case語句
與Java、C\C++等語言不同,Python中是不提供switch/case語句的,這一點(diǎn)讓我感覺到很奇怪。我們可以通過如下幾種方法來實(shí)現(xiàn)switch/case語句2021-08-08Django 權(quán)限認(rèn)證(根據(jù)不同的用戶,設(shè)置不同的顯示和訪問權(quán)限)
這篇文章主要介紹了Django 權(quán)限認(rèn)證(根據(jù)不同的用戶,設(shè)置不同的顯示和訪問權(quán)限),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pytorch中關(guān)于distributedsampler函數(shù)的使用
這篇文章主要介紹了pytorch中關(guān)于distributedsampler函數(shù)的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02