आप एक कुल्हाड़ियों में जोड़ने के लिए की जरूरत है। Circle
Artist
का उप-वर्ग है, और axes
में add_artist
विधि है।
import matplotlib.pyplot as plt
circle1 = plt.Circle((0, 0), 0.2, color='r')
circle2 = plt.Circle((0.5, 0.5), 0.2, color='blue')
circle3 = plt.Circle((1, 1), 0.2, color='g', clip_on=False)
fig, ax = plt.subplots() # note we must use plt.subplots, not plt.subplot
# (or if you have an existing figure)
# fig = plt.gcf()
# ax = fig.gca()
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles.png')
यह निम्न चित्र में परिणाम:
यहाँ ऐसा करने का एक उदाहरण है
पहले चक्र मूल में है, लेकिन डिफ़ॉल्ट रूप से clip_on
True
है, इसलिए जब भी यह axes
से आगे फैलता है तब सर्कल फिसल जाता है। तीसरा (हरा) सर्कल दिखाता है कि जब आप Artist
क्लिप नहीं करते हैं तो क्या होता है। यह धुरी से परे फैला हुआ है (लेकिन आंकड़े से परे नहीं, यानी आकृति का आकार स्वचालित रूप से आपके सभी कलाकारों को साजिश करने के लिए समायोजित नहीं किया गया है)।
एक्स, वाई और त्रिज्या के लिए इकाइयां डिफ़ॉल्ट रूप से डेटा इकाइयों से मेल खाते हैं। इस मामले में, मैंने अपनी अक्षों पर कुछ भी प्लॉट नहीं किया था (fig.gca()
वर्तमान अक्ष को वापस करता है), और चूंकि सीमाएं कभी भी सेट नहीं की गई हैं, इसलिए वे एक्स और वाई रेंज को 0 से 1.
यहां एक निरंतरता है उदाहरण के, दिखा कैसे इकाइयों बात:
circle1 = plt.Circle((0, 0), 2, color='r')
# now make a circle with no fill, which is good for hi-lighting key results
circle2 = plt.Circle((5, 5), 0.5, color='b', fill=False)
circle3 = plt.Circle((10, 10), 2, color='g', clip_on=False)
ax = plt.gca()
ax.cla() # clear things for fresh plot
# change default range so that new circles will work
ax.set_xlim((0, 10))
ax.set_ylim((0, 10))
# some data
ax.plot(range(11), 'o', color='black')
# key data point that we are encircling
ax.plot((5), (5), 'o', color='y')
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles2.png')
जिसमें परिणाम:
आप देख सकते हैं कि कैसे मैं False
, जो घेराबंदी के लिए उपयोगी है करने के लिए 2 चक्र का भरण सेट मुख्य परिणाम (जैसे मेरा पीला डेटा बिंदु)।
मुझे यकीन है कि यह करना संभव है, लेकिन matplotlib मुख्य रूप से साजिश पर लक्षित है (यानी यहां कुछ डेटा हैं, उन्हें ग्राफ पर रखें), ड्राइंग नहीं, इसलिए यह पूरी तरह से सरल नहीं हो सकता है। –
स्कैटरप्लॉट बिंदुओं का त्रिज्या डेटा को देखने के लिए तेजी से उपयोग किया जाता है। Google चार्ट उन्हें "बबल प्लॉट" कहते हैं। Gapminder.org एक अच्छा exmaple है। यह * प्लॉटिंग है, ड्राइंग नहीं। मैंने "बबल" और "स्कैटर त्रिज्या" के लिए matplotlib github repo की खोज नहीं की है, इसलिए मुझे नहीं लगता कि यह एक सुविधा जोड़ने तक टू-डू सूची पर है। –
plt.scatter() एक आकार तर्क लेता है। आप मंडलियों के x- और y-coordinates, मंडल 'त्रिज्या, और मंडलियों के रंगों के लिए सूचियां पास कर सकते हैं। http://matplotlib.org/1.3.1/api/pyplot_api.html#matplotlib.pyplot.scatter। मेरी गलती पहले, यह सोचकर कि ऐसी कार्यक्षमता पहले से ही matplotlib में नहीं थी। –