matplotlib लीजेंड मार्कर केवल एक बार


238

मैं अक्सर मैटलपोटलिब प्लॉट पर एक बिंदु के साथ प्लॉट करता हूं:

x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()

हालांकि, यह किंवदंती को दो बार किंवदंती में एक स्टार लगाने का कारण बनता है, जैसे कि यह दिखता है:

* * Global Optimum

जब मैं वास्तव में यह देखना चाहता हूँ:

 *  Global Optimum

मैं यह कैसे करु?


48
काश मैं इस सवाल को कई बार उठा पाता। मैं डिफ़ॉल्ट numpoints=2सम्मेलन से घृणा करता था और यह देखने के लिए किसी को पहले से ही इसके बारे में पूछने और जवाब पाने के लिए समय निकाल लेता था।
क्रिस रेडफोर्ड

24
मन: बिखराव का विकल्प हैscatterpoints=1
मार्कोस एलेक्स

जवाबों:


253

यह काम करना चाहिए:

legend(numpoints=1)

BTW, यदि आप लाइन जोड़ते हैं

legend.numpoints     : 1      # the number of points in the legend line

आपकी matplotlibrc फ़ाइल के लिए, फिर यह नया डिफ़ॉल्ट होगा।

[अपने प्लॉट के आधार पर भी स्कैटरपॉइंट देखें।]

एपीआई: एपीआई डॉक्स से लिंक


7
धन्यवाद। मैं आज भी इसमें भाग गया। यह डिफ़ॉल्ट क्यों नहीं है?
साल्टीक्रैन

क्या आप एपी से लिंक जोड़ सकते हैं? matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.legend मैं इसे अपने आप में संपादित कर सकता हूं, लेकिन यह असभ्य लगता है।
ताकसवेल

2
क्या उस क्षेत्र को कम करने का कोई तरीका है, जो कि किंवदंती को इंगित करता है?
योतम

3
@ डीएमएस: मैंने ऐसा नहीं देखा था। मेरी गलती। इसे अधिक दृश्यमान बनाने के लिए आपको इसे कोड के रूप में भी हाइलाइट करना चाहिए।
मार्कोस एलेक्स

2
लंबे समय तक, matplotlib 2.0 में डिफॉल्ट होने के लिए numpoint = 1 की योजनाएं हैं! हुज़्ज़ाह! github.com/matplotlib/matplotlib/issues/4854
DanHickstein

25

मैं हर अजगर लिपि में गतिशील रूप से अपने matplotlib आरसी मापदंडों को बदलना पसंद करता हूं। इस लक्ष्य को प्राप्त करने के लिए मैं बस अपने पायथन फ़ाइलों की शुरुआत में उस तरह का उपयोग करता हूं।

from pylab import *
rcParams['legend.numpoints'] = 1

यह मेरी अजगर फ़ाइल से उत्पन्न सभी भूखंडों पर लागू होगा।

EDIT: उन लोगों के लिए जो पाइलैब आयात करना पसंद नहीं करते हैं, लंबा जवाब है

import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.