2013-04-08 8 views
7

मैं matplotlib के साथ 2 डी-सरणी की साजिश कर रहा हूं। खिड़की के निचले दाएं कोने पर कर्सर के एक्स और वाई निर्देशांक दिखाए जाते हैं। कर्सर के नीचे के डेटा के बारे में मैं इस स्टेटस बार में जानकारी कैसे जोड़ सकता हूं, उदाहरण के लिए, 'x = 439.501 y = 317.744' के बजाय यह 'x, y: [440,318] डेटा: 100' दिखाएगा? क्या मैं किसी भी तरह से इस नेविगेशन टूलबार पर अपना हाथ ले सकता हूं और अपना खुद का संदेश दिखाया जा सकता हूं?matplotlib नेविगेशन टूलबार/स्टेटस बार में जानकारी जोड़ें?

मैंने 'बटन_प्रेस_एवेंट' के लिए अपना खुद का इवेंट हैंडलर जोड़ने में कामयाब रहा है, ताकि डेटा मान टर्मिनल विंडो पर मुद्रित हो, लेकिन इस दृष्टिकोण के लिए बहुत सारे माउस क्लिकिंग और इंटरैक्टिव सत्र में बाढ़ की आवश्यकता होती है।

+0

संभव डुप्लिकेट (http: // stackoverflow। कॉम/प्रश्न/14754931/matplotlib-values-under-cursor) – tacaswell

+0

भी http://stackoverflow.com/questions/14349289/in-a-matplotlib-figure-window-with-imshow-how-can-i-remove- छिपाने के लिए – tacaswell

उत्तर

10

आपको बस उस लेबल को आकर्षित करने के लिए उपयोग की जाने वाली कॉल को ax.format_coord फिर से असाइन करने की आवश्यकता है।

प्रलेखन से this example देखें, साथ ही In a matplotlib figure window (with imshow), how can I remove, hide, or redefine the displayed position of the mouse? और matplotlib values under cursor

(कोड उदाहरण से सीधे उठा लिया) [कर्सर के तहत matplotlib मूल्यों] की

""" 
Show how to modify the coordinate formatter to report the image "z" 
value of the nearest pixel given x and y 
""" 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 

X = 10*np.random.rand(5,3) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.imshow(X, cmap=cm.jet, interpolation='nearest') 

numrows, numcols = X.shape 
def format_coord(x, y): 
    col = int(x+0.5) 
    row = int(y+0.5) 
    if col>=0 and col<numcols and row>=0 and row<numrows: 
        z = X[row,col] 
        return 'x=%1.4f, y=%1.4f, z=%1.4f'%(x, y, z) 
    else: 
        return 'x=%1.4f, y=%1.4f'%(x, y) 

ax.format_coord = format_coord 
plt.show() 
+0

छुपाएं या फिर से परिभाषित करें, मुझे अभी भी यह नहीं मिला! समाधान के लिए धन्यवाद! – northaholic

+0

@ नॉर्थहोलिक यदि यह आपकी समस्या का समाधान करता है तो आप इसे स्वीकार कर सकते हैं (बाईं ओर बड़ा ग्रे चेक मार्क) – tacaswell

संबंधित मुद्दे