2017-02-09 5 views
2

私は、赤い円をプロットするための簡単なコードを書いています。mpldatacursorを使用しているときにデータカーソルの内容を変更する方法

次のように上記のコードはpyplotを生成している
import matplotlib.pyplot as plt 
import numpy as np 
from mpldatacursor import datacursor 

lines = plt.plot([1,2,3,4], [1,4,9,16], 'ro') 
plt.axis([0, 6, 0, 20]) 
datacursor(lines) 
plt.show() 

enter image description here

私はプロットの赤いマークにクリックしたときに私の質問は、どのように私はカスタムラベルにラベル(x、y)を変更することができています表示されたポップアップから?

このポップアップを数秒間表示することはできますか?

答えて

2

表示されたデータをカスタマイズするには、formatter kwargを使用する必要があります。たとえば、両方のことが整数にxとyの値を強制するために、我々は次のような何かを行うことができます:

あなたは、ラベル自身を含むいずれかの方法で表示されるテキストを変更するには任意のカスタムフォーマッタを使用することができます。

datacursor(lines, formatter='my_x: {x:.0f}\nmy_y: {y:.0f}'.format) 

のではなく、上記のようstr.formatを使用して、あなたもあなたのラベルをフォーマットする関数全体を書くことができます。

def myformatter(**kwarg): 
    label = 'My custom label at point ({x:.0f}, {y:.0f})'.format(**kwarg) 
    return label 

datacursor(lines, formatter=myformatter) 
+0

ありがとうございます。あなたはとても速かったです。私はちょうど私の質問を変更していた:) – nas

+0

ポップアップを数秒間表示させることは可能ですか? – nas

+0

@nas残念ながら、その機能は使用しているデータカーソルに組み込まれていません。タイマーなどを使ってカーソルを消してみる必要があります。それはラベルを変更することと非常に異なるので、別の質問で聞く価値があるかもしれません – Suever

関連する問題