माटप्लोटलिब स्कैटर
स्कैटर प्लॉट बनाना
पाइप्लॉट के साथ, आप scatter()
स्कैटर प्लॉट को ड्रा करने के लिए फ़ंक्शन का उपयोग कर सकते हैं।
scatter()
फ़ंक्शन प्रत्येक अवलोकन के लिए एक बिंदु प्लॉट करता है । इसे समान लंबाई के दो सरणियों की आवश्यकता होती है, एक x-अक्ष के मानों के लिए, और एक y-अक्ष पर मानों के लिए:
उदाहरण
एक साधारण तितर बितर साजिश:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y)
plt.show()
परिणाम:
ऊपर के उदाहरण में अवलोकन 13 कारों के गुजरने का परिणाम है।
एक्स-अक्ष दिखाता है कि कार कितनी पुरानी है।
Y-अक्ष कार के गुजरने पर उसकी गति दिखाता है।
क्या अवलोकनों के बीच कोई संबंध हैं?
ऐसा लगता है कि कार जितनी नई होगी, उतनी ही तेज चलेगी, लेकिन यह एक संयोग हो सकता है, आखिरकार हमने केवल 13 कारों का पंजीकरण किया।
भूखंडों की तुलना करें
ऊपर के उदाहरण में, गति और उम्र के बीच एक संबंध प्रतीत होता है, लेकिन क्या होगा यदि हम अवलोकनों को किसी अन्य दिन से भी प्लॉट करें? क्या बिखराव की साजिश हमें कुछ और बताएगी?
उदाहरण
एक ही आकृति पर दो प्लॉट बनाएं:
import matplotlib.pyplot as plt
import numpy as np
#day one, the age
and speed of 13 cars:
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x,
y)
#day two, the age and speed of 15 cars:
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y)
plt.show()
परिणाम:
नोट: दो प्लॉट दो अलग-अलग रंगों के साथ प्लॉट किए गए हैं, डिफ़ॉल्ट रूप से नीला और नारंगी, आप इस अध्याय में बाद में रंग बदलना सीखेंगे।
दो भूखंडों की तुलना करके, मुझे लगता है कि यह कहना सुरक्षित है कि वे दोनों हमें एक ही निष्कर्ष देते हैं: कार जितनी नई होगी, उतनी ही तेज चलेगी।
रंग की
color
आप या c
तर्क के साथ प्रत्येक स्कैटर प्लॉट के लिए अपना स्वयं का रंग सेट कर सकते हैं
:
उदाहरण
मार्करों का अपना रंग सेट करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x,
y, color = 'hotpink')
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')
plt.show()
परिणाम:
प्रत्येक बिंदु को रंग दें
c
आप तर्क के लिए मान के रूप में रंगों की एक सरणी का उपयोग करके प्रत्येक बिंदु के लिए एक विशिष्ट रंग भी सेट कर सकते हैं
:
नोट: आप इसके लिए तर्क का उपयोग नहीं कर सकतेcolor
, केवल c
तर्क का।
उदाहरण
मार्करों का अपना रंग सेट करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array(["red","green","blue","yellow","pink","black","orange","purple","beige","brown","gray","cyan","magenta"])
plt.scatter(x, y, c=colors)
plt.show()
परिणाम:
रंग मैप
Matplotlib मॉड्यूल में कई उपलब्ध कॉलोरमैप हैं।
एक कॉलोरमैप रंगों की एक सूची की तरह होता है, जहां प्रत्येक रंग का मान 0 से 100 तक होता है।
यहाँ एक रंगरूप का एक उदाहरण है:
इस कॉलोरमैप को 'विरिडिस' कहा जाता है और जैसा कि आप देख सकते हैं कि यह 0 से लेकर है, जो एक बैंगनी रंग है, और 100 तक है, जो एक पीला रंग है।
ColorMap का उपयोग कैसे करें
आप कोलोरमैप के मान के साथ कीवर्ड तर्क के साथ कॉलोर्मैप निर्दिष्ट कर सकते हैं
cmap
, इस मामले में 'viridis'
जो मैटलपोटलिब में उपलब्ध बिल्ट-इन कॉलोरमैप्स में से एक है।
इसके अलावा आपको मानों (0 से 100 तक) के साथ एक सरणी बनानी होगी, स्कैटर प्लॉट में प्रत्येक बिंदु के लिए एक मान:
उदाहरण
एक रंग सरणी बनाएं, और स्कैटर प्लॉट में एक कॉलॉर्मैप निर्दिष्ट करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0,
10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.show()
परिणाम:
plt.colorbar()
आप कथन को शामिल करके चित्र में रंगरूप को शामिल कर सकते हैं :
उदाहरण
वास्तविक रंगरूप शामिल करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0,
10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()
परिणाम:
उपलब्ध कलरमैप्स
आप किसी भी बिल्ट-इन कॉलोरमैप्स को चुन सकते हैं:
Name | Reverse | |||
---|---|---|---|---|
Accent | Accent_r | |||
Blues | Blues_r | |||
BrBG | BrBG_r | |||
BuGn | BuGn_r | |||
BuPu | BuPu_r | |||
CMRmap | CMRmap_r | |||
Dark2 | Dark2_r | |||
GnBu | GnBu_r | |||
Greens | Greens_r | |||
Greys | Greys_r | |||
OrRd | OrRd_r | |||
Oranges | Oranges_r | |||
PRGn | PRGn_r | |||
Paired | Paired_r | |||
Pastel1 | Pastel1_r | |||
Pastel2 | Pastel2_r | |||
PiYG | PiYG_r | |||
PuBu | PuBu_r | |||
PuBuGn | PuBuGn_r | |||
PuOr | PuOr_r | |||
PuRd | PuRd_r | |||
Purples | Purples_r | |||
RdBu | RdBu_r | |||
RdGy | RdGy_r | |||
RdPu | RdPu_r | |||
RdYlBu | RdYlBu_r | |||
RdYlGn | RdYlGn_r | |||
Reds | Reds_r | |||
Set1 | Set1_r | |||
Set2 | Set2_r | |||
Set3 | Set3_r | |||
Spectral | Spectral_r | |||
Wistia | Wistia_r | |||
YlGn | YlGn_r | |||
YlGnBu | YlGnBu_r | |||
YlOrBr | YlOrBr_r | |||
YlOrRd | YlOrRd_r | |||
afmhot | afmhot_r | |||
autumn | autumn_r | |||
binary | binary_r | |||
bone | bone_r | |||
brg | brg_r | |||
bwr | bwr_r | |||
cividis | cividis_r | |||
cool | cool_r | |||
coolwarm | coolwarm_r | |||
copper | copper_r | |||
cubehelix | cubehelix_r | |||
flag | flag_r | |||
gist_earth | gist_earth_r | |||
gist_gray | gist_gray_r | |||
gist_heat | gist_heat_r | |||
gist_ncar | gist_ncar_r | |||
gist_rainbow | gist_rainbow_r | |||
gist_stern | gist_stern_r | |||
gist_yarg | gist_yarg_r | |||
gnuplot | gnuplot_r | |||
gnuplot2 | gnuplot2_r | |||
gray | gray_r | |||
hot | hot_r | |||
hsv | hsv_r | |||
inferno | inferno_r | |||
jet | jet_r | |||
magma | magma_r | |||
nipy_spectral | nipy_spectral_r | |||
ocean | ocean_r | |||
pink | pink_r | |||
plasma | plasma_r | |||
prism | prism_r | |||
rainbow | rainbow_r | |||
seismic | seismic_r | |||
spring | spring_r | |||
summer | summer_r | |||
tab10 | tab10_r | |||
tab20 | tab20_r | |||
tab20b | tab20b_r | |||
tab20c | tab20c_r | |||
terrain | terrain_r | |||
twilight | twilight_r | |||
twilight_shifted | twilight_shifted_r | |||
viridis | viridis_r | |||
winter | winter_r |
आकार
s
आप तर्क के साथ बिंदुओं का आकार बदल सकते हैं
।
रंगों की तरह, सुनिश्चित करें कि आकार के लिए सरणी की लंबाई x- और y-अक्ष के लिए सरणी के समान है:
उदाहरण
मार्करों के लिए अपना खुद का आकार निर्धारित करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes =
np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])
plt.scatter(x,
y, s=sizes)
plt.show()
परिणाम:
अल्फा
alpha
आप तर्क के साथ बिंदुओं की पारदर्शिता को समायोजित कर सकते
हैं।
रंगों की तरह, सुनिश्चित करें कि आकार के लिए सरणी की लंबाई x- और y-अक्ष के लिए सरणी के समान है:
उदाहरण
मार्करों के लिए अपना खुद का आकार निर्धारित करें:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes =
np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])
plt.scatter(x,
y, s=sizes, alpha=0.5)
plt.show()
परिणाम:
रंग आकार और अल्फा को मिलाएं
आप डॉट्स पर विभिन्न आकारों के साथ एक कॉलोरमैप को जोड़ सकते हैं। यदि बिंदु पारदर्शी हों तो यह सबसे अच्छा देखा जाता है:
उदाहरण
x-बिंदुओं, y-बिंदुओं, रंगों और आकारों के लिए 100 मानों के साथ यादृच्छिक सरणियाँ बनाएँ:
import matplotlib.pyplot as plt
import numpy as np
x =
np.random.randint(100, size=(100))
y = np.random.randint(100, size=(100))
colors = np.random.randint(100, size=(100))
sizes = 10 * np.random.randint(100,
size=(100))
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')
plt.colorbar()
plt.show()
परिणाम: