परिचय...
चार्ट का मुख्य उद्देश्य डेटा को आसानी से समझना है। "एक तस्वीर एक हजार शब्दों के बराबर होती है" का अर्थ है जटिल विचार जिन्हें शब्दों में व्यक्त नहीं किया जा सकता है उन्हें एक छवि/चार्ट द्वारा व्यक्त किया जा सकता है।
बहुत सारी जानकारी के साथ ग्राफ़ बनाते समय, प्रस्तुत डेटा की समझ को बेहतर बनाने के लिए प्रासंगिक जानकारी प्रदर्शित करने के लिए एक किंवदंती प्रसन्न हो सकती है।
इसे कैसे करें..
Matplotlib में, किंवदंतियों को कई तरीकों से प्रस्तुत किया जा सकता है। ग्राफ़ पर प्रदर्शित जानकारी को समझने में पाठक की मदद करने के लिए विशिष्ट बिंदुओं पर ध्यान आकर्षित करने के लिए टिप्पणियां भी उपयोगी होती हैं।
1.पायथन कमांड प्रॉम्प्ट को खोलकर और पाइप इंस्टाल मैटप्लोटलिब को फायर करके मैटप्लोटलिब स्थापित करें।
2. प्रदर्शित होने वाला डेटा तैयार करें।
उदाहरण
import matplotlib.pyplot as plt # data prep (I made up data no accuracy in these stats) mobile = ['Iphone','Galaxy','Pixel'] # Data for the mobile units sold for 4 Quaters in Million units_sold = (('2016',12,8,6), ('2017',14,10,7), ('2018',16,12,8), ('2019',18,14,10), ('2020',20,16,5),)
3. प्रत्येक कंपनी कंपनी की मोबाइल इकाइयों के लिए डेटा को सरणियों में विभाजित करें।
उदाहरण
# data prep - splitting the data IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold] Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold] Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold] # data prep - Labels Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold] # set the position Position = list(range(len(units_sold))) # set the width Width = 0.2
4. तैयार किए गए डेटा के साथ एक बार ग्राफ बनाना। प्रत्येक उत्पाद की बिक्री को उसकी स्थिति और बिक्री को निर्दिष्ट करते हुए .bar पर कॉल किया जाता है।
xy और xytext विशेषताओं का उपयोग करके एनोटेशन जोड़ा जाता है। डेटा को देखते हुए, Google Pixel मोबाइल की बिक्री में 50% की गिरावट आई है, यानी 2019 में बेची गई 10 मिलियन यूनिट से 2022 में केवल 5 मिलियन हो गई है। इसलिए हम टेक्स्ट और एनोटेशन को अंतिम बार पर सेट करने जा रहे हैं।
अंत में, हम लेजेंड पैरामीटर का उपयोग करके लेजेंड को जोड़ देंगे। डिफ़ॉल्ट रूप से, matplotlib उस क्षेत्र पर लेजेंड को ड्रा करेगा जहां डेटा का सबसे कम ओवरलैप है।
उदाहरण
plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green') plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue') plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow') # Set X-axis as years plt.xticks(Position, Years) # Set the Y axis label plt.xlabel('Yearly Sales') plt.ylabel('Unit Sales In Millions') # Set the annotation Use the xy and xytext to change the arrow plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12), horizontalalignment='center', arrowprops=dict(facecolor='red', shrink=0.05)) # Set the legent plt.legend(mobile, title='Manufacturers')
आउटपुट
<matplotlib.legend.Legend at 0x19826618400>
-
यदि आपको लगता है कि चार्ट के अंदर लेजेंड को जोड़ना शोर है, तो आप लेजेंड को बाहर प्लॉट करने के लिए bbox_to_anchor विकल्प का उपयोग कर सकते हैं। bbox_to_anchor में (X, Y) स्थितियां हैं, जहां 0 ग्राफ़ का निचला-बायां कोना है और 1 ऊपरी-दाएं कोने में है।
नोट: - जहां ग्राफ़ शुरू होता है और समाप्त होता है, वहां लेजेंड को समायोजित करने के लिए .subplots_adjust का उपयोग करें।
उदा. राइट =0.50 वैल्यू का मतलब है कि यह स्क्रीन का 50% प्लॉट के दाईं ओर छोड़ देता है। बाईं ओर का डिफ़ॉल्ट मान 0.125 है, जिसका अर्थ है कि यह बाईं ओर 12.5% स्थान छोड़ता है।
आउटपुट
plt.legend(mobile, title='Manufacturers', bbox_to_anchor=(1, 0.8)) plt.subplots_adjust(right=1.2)
उदाहरण
6.आखिरकार हम फिगर को सेव करते हैं।
import matplotlib.pyplot as plt # data prep (I made up data no accuracy in these stats) mobile = ['Iphone','Galaxy','Pixel'] # Data for the mobile units sold for 4 Quaters in Million units_sold = (('2016',12,8,6), ('2017',14,10,7), ('2018',16,12,8), ('2019',18,14,10), ('2020',20,16,5),) # data prep - splitting the data IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold] Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold] Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold] # data prep - Labels Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold] # set the position Position = list(range(len(units_sold))) # set the width Width = 0.2 plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green') plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue') plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow') # Set X-axis as years plt.xticks(Position, Years) # Set the Y axis label plt.xlabel('Yearly Sales') plt.ylabel('Unit Sales In Millions') # Set the annotation Use the xy and xytext to change the arrow plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12), horizontalalignment='center', arrowprops=dict(facecolor='red', shrink=0.05)) # Set the legent plt.legend(mobile, title='Manufacturers') plt.legend(mobile, title='Manufacturers') plt.subplots_adjust(right=1.2) # plt.show() plt.savefig('MobileSales.png')