免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

      怎么在matplotlib中實現一個交互式數據光標效果-創(chuàng)新互聯(lián)

      這篇文章給大家介紹怎么在matplotlib中實現一個交互式數據光標效果,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

      為吉首等地區(qū)用戶提供了全套網頁設計制作服務,及吉首網站建設行業(yè)解決方案。主營業(yè)務為成都網站建設、網站設計、吉首網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

      簡介

      mplcursors包也可以為matplotlib提供交互式的數據光標(彈出式注釋框),它的靈感來源于mpldatacursor包,可以認為是基于mpldatacursor包的二次開發(fā)。
      相對于mpldatacursor包,mplcursors包較大的特點就是提供了一些相對底層的API,這樣功能實現更加靈活。

      安裝

      pip install mplcursors

      基本應用

      mplcursors包的基本應用方法與mpldatacursor包類似,直接應用cursor函數即可。

      基本操作方法

      • 鼠標左鍵單擊圖表數據元素時會彈出文本框顯示最近的數據元素的坐標值。

      • 鼠標右鍵單擊文本框取消顯示數據光標。

      • 按d鍵時切換顯示\關閉數據光標。

      案例源碼

      import matplotlib.pyplot as plt
      import numpy as np
      import mplcursors
      
      data = np.outer(range(10), range(1, 5))
      
      fig, ax = plt.subplots()
      lines = ax.plot(data)
      ax.set_title("Click somewhere on a line.\nRight-click to deselect.\n"
             "Annotations can be dragged.")
      
      mplcursors.cursor(lines) # or just mplcursors.cursor()
      
      plt.show()

      mplcursors自定義應用

      mpldatacursor包中自定義功能主要通過向datacursor函數傳遞實參實現。
      mplcursors包中的cursor函數對標mpldatacursor包中的datacursor函數,但是在參數上發(fā)生了變化,保留了artistshoverbindingsmultiplehighlight等類似參數。
      mplcursors包增加Selection對象(底層為namedtuple)表示選擇的數據元素的屬性。
      當選中某個數據點時,可以通過添加(add)或刪除(remove)事件觸發(fā)、注冊回調函數實現功能,回調函數只有一個參數,及選擇的數據點。
      在注冊回調函數時,mplcursors包支持使用裝飾器。

      mpldatacursor與mplcursors API對比

      下面以修改顯示文本信息為例對比下mpldatacursormplcursors的不同實現方式。


      怎么在matplotlib中實現一個交互式數據光標效果

      mpldatacursor實現方式

      import matplotlib.pyplot as plt
      import numpy as np
      from mpldatacursor import datacursor
      
      ax=plt.gca()
      labels = ["a", "b", "c"]
      for i in range(3):
        ax.plot(i, i,'o', label=labels[i])
      
      datacursor(formatter='{label}'.format)
      plt.show()

      mplcursors實現方式一

      import matplotlib.pyplot as plt
      import numpy as np
      import mplcursors
      
      ax=plt.gca()
      lines = ax.plot(range(3), range(3), "o")
      labels = ["a", "b", "c"]
      cursor = mplcursors.cursor(lines)
      cursor.connect(
        "add", lambda sel: sel.annotation.set_text(labels[sel.target.index]))
      
      plt.show()

      mplcursors實現方式二

      import matplotlib.pyplot as plt
      import numpy as np
      import mplcursors
      
      ax=plt.gca()
      lines = ax.plot(range(3), range(3), "o")
      labels = ["a", "b", "c"]
      cursor = mplcursors.cursor(lines)
      
      @cursor.connect("add")
      def on_add(sel):
        sel.annotation.set_text(labels[sel.target.index])
      plt.show()

      結論

      mplcursors包實現的功能與mpldatacursor包非常相似。相對而言mplcursors包的API更加靈活,通過connect函數或者裝飾器自定義屬性耦合性更弱,便于實現繪圖與數據光標實現的分離。

      關于怎么在matplotlib中實現一個交互式數據光標效果就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

      網頁標題:怎么在matplotlib中實現一個交互式數據光標效果-創(chuàng)新互聯(lián)
      文章路徑:http://m.newbst.com/article10/cogedo.html

      成都網站建設公司_創(chuàng)新互聯(lián),為您提供關鍵詞優(yōu)化小程序開發(fā)ChatGPT網站營銷服務器托管云服務器

      廣告

      聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

      h5響應式網站建設