You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 KiB

അളവുകൾ ദൃശ്യവൽക്കരിക്കൽ

 Sketchnote by (@sketchthedocs)
അളവുകൾ ദൃശ്യവൽക്കരിക്കൽ - Sketchnote by @nitya

ഈ പാഠത്തിൽ, അളവിന്റെ ആശയത്തെ ചുറ്റിപ്പറ്റി രസകരമായ ദൃശ്യവൽക്കരണങ്ങൾ സൃഷ്ടിക്കാൻ ലഭ്യമായ പല പൈതൺ ലൈബ്രറികളിൽ ഒന്നിനെ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും. മിന്നസോട്ടയുടെ പക്ഷികളെക്കുറിച്ചുള്ള ശുദ്ധീകരിച്ച ഡാറ്റാസെറ്റ് ഉപയോഗിച്ച്, പ്രാദേശിക വന്യജീവികളെക്കുറിച്ചുള്ള പല രസകരമായ വസ്തുതകളും നിങ്ങൾക്ക് അറിയാം.

പാഠം മുൻകൂർ ക്വിസ്

Matplotlib ഉപയോഗിച്ച് വിങ്‌സ്‌പാൻ നിരീക്ഷിക്കുക

വിവിധ തരത്തിലുള്ള ലളിതവും സങ്കീർണ്ണവുമായ പ്ലോട്ടുകളും ചാർട്ടുകളും സൃഷ്ടിക്കാൻ മികച്ച ലൈബ്രറി Matplotlib ആണ്. പൊതുവായി, ഈ ലൈബ്രറികൾ ഉപയോഗിച്ച് ഡാറ്റ പ്ലോട്ട് ചെയ്യാനുള്ള പ്രക്രിയയിൽ, നിങ്ങളുടെ ഡാറ്റാഫ്രെയിമിന്റെ ലക്ഷ്യമിടേണ്ട ഭാഗങ്ങൾ തിരിച്ചറിയുക, ആവശ്യമായ മാറ്റങ്ങൾ ചെയ്യുക, അതിന്റെ x, y അക്ഷ മൂല്യങ്ങൾ നിശ്ചയിക്കുക, ഏത് തരത്തിലുള്ള പ്ലോട്ട് കാണിക്കണമെന്ന് തീരുമാനിക്കുക, പിന്നെ പ്ലോട്ട് കാണിക്കുക എന്നിവ ഉൾപ്പെടുന്നു. Matplotlib നിരവധി ദൃശ്യവൽക്കരണങ്ങൾ നൽകുന്നു, പക്ഷേ ഈ പാഠത്തിനായി, അളവ് ദൃശ്യവൽക്കരിക്കാൻ ഏറ്റവും അനുയോജ്യമായവയായ ലൈന്ചാർട്ടുകൾ, സ്കാറ്റർപ്ലോട്ടുകൾ, ബാർ പ്ലോട്ടുകൾ എന്നിവയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാം.

നിങ്ങളുടെ ഡാറ്റയുടെ ഘടനക്കും പറയാനുള്ള കഥക്കും ഏറ്റവും അനുയോജ്യമായ ചാർട്ട് ഉപയോഗിക്കുക.

  • സമയാനുസൃത പ്രവണതകൾ വിശകലനം ചെയ്യാൻ: ലൈന്ചാർട്ട്
  • മൂല്യങ്ങൾ താരതമ്യം ചെയ്യാൻ: ബാർ, കോളം, പൈ, സ്കാറ്റർപ്ലോട്ട്
  • ഭാഗങ്ങൾ മുഴുവൻ എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു കാണിക്കാൻ: പൈ
  • ഡാറ്റയുടെ വിതരണങ്ങൾ കാണിക്കാൻ: സ്കാറ്റർപ്ലോട്ട്, ബാർ
  • പ്രവണതകൾ കാണിക്കാൻ: ലൈന്ചാർട്ട്, കോളം
  • മൂല്യങ്ങൾ തമ്മിലുള്ള ബന്ധങ്ങൾ കാണിക്കാൻ: ലൈന്ചാർട്ട്, സ്കാറ്റർപ്ലോട്ട്, ബബിൾ

നിങ്ങൾക്ക് ഒരു ഡാറ്റാസെറ്റ് ഉണ്ടെങ്കിൽ, ഒരു നൽകിയ വസ്തുവിന്റെ എത്രമാത്രം ഉൾപ്പെടുന്നുവെന്ന് കണ്ടെത്തേണ്ട ആദ്യ ജോലികളിൽ ഒന്നാണ് അതിന്റെ മൂല്യങ്ങൾ പരിശോധിക്കുക.

Matplotlib-ന് മികച്ച 'ചീറ്റ് ഷീറ്റുകൾ' ഇവിടെ ലഭ്യമാണ്.

പക്ഷികളുടെ വിങ്‌സ്‌പാൻ മൂല്യങ്ങളെക്കുറിച്ച് ലൈന്പ്ലോട്ട് നിർമ്മിക്കുക

ഈ പാഠ ഫോൾഡറിന്റെ റൂട്ടിലുള്ള notebook.ipynb ഫയൽ തുറന്ന് ഒരു സെൽ ചേർക്കുക.

കുറിപ്പ്: ഡാറ്റ ഈ റീപ്പോയുടെ റൂട്ടിലുള്ള /data ഫോൾഡറിലാണ് സൂക്ഷിച്ചിരിക്കുന്നത്.

import pandas as pd
import matplotlib.pyplot as plt
birds = pd.read_csv('../../data/birds.csv')
birds.head()

ഈ ഡാറ്റ ടെക്സ്റ്റും സംഖ്യകളും ചേർന്നതാണ്:

Name ScientificName Category Order Family Genus ConservationStatus MinLength MaxLength MinBodyMass MaxBodyMass MinWingspan MaxWingspan
0 Black-bellied whistling-duck Dendrocygna autumnalis Ducks/Geese/Waterfowl Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Fulvous whistling-duck Dendrocygna bicolor Ducks/Geese/Waterfowl Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Snow goose Anser caerulescens Ducks/Geese/Waterfowl Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Ross's goose Anser rossii Ducks/Geese/Waterfowl Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Greater white-fronted goose Anser albifrons Ducks/Geese/Waterfowl Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

അടിസ്ഥാന ലൈന്പ്ലോട്ട് ഉപയോഗിച്ച് ചില സംഖ്യാത്മക ഡാറ്റ പ്ലോട്ട് ചെയ്യുന്നതിൽ നിന്ന് തുടങ്ങാം. ഈ രസകരമായ പക്ഷികളുടെ പരമാവധി വിങ്‌സ്‌പാനിന്റെ കാഴ്ച നിങ്ങൾക്ക് വേണമെങ്കിൽ.

wingspan = birds['MaxWingspan'] 
wingspan.plot()

Max Wingspan

നിങ്ങൾ ഉടൻ ശ്രദ്ധിക്കുന്നതെന്താണ്? കുറഞ്ഞത് ഒരു ഔട്ട്‌ലൈയർ ഉണ്ടെന്ന് തോന്നുന്നു - അത്ര വലിയ വിങ്‌സ്‌പാൻ! 2300 സെന്റീമീറ്റർ വിങ്‌സ്‌പാൻ 23 മീറ്ററിനാണ് തുല്യമായത് - മിന്നസോട്ടയിൽ പ്റ്റെറോഡാക്ടിലുകൾ നടക്കുകയാണോ? പരിശോധിക്കാം.

Excel-ൽ ഒരു വേഗത്തിലുള്ള സോർട്ട് ചെയ്ത് ആ ഔട്ട്‌ലൈയറുകൾ കണ്ടെത്താമെങ്കിലും, അവ ടൈപ്പോസ് ആകാമെന്ന് കരുതുന്നു, പ്ലോട്ടിൽ നിന്നുള്ള ദൃശ്യവൽക്കരണ പ്രക്രിയ തുടരുക.

x-അക്ഷത്തിൽ ലേബലുകൾ ചേർത്ത് ഏത് തരത്തിലുള്ള പക്ഷികളാണെന്ന് കാണിക്കുക:

plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.xticks(rotation=45)
x = birds['Name'] 
y = birds['MaxWingspan']

plt.plot(x, y)

plt.show()

wingspan with labels

45 ഡിഗ്രി ലേബലുകളുടെ റൊട്ടേഷൻ സജ്ജമാക്കിയിട്ടും വായിക്കാൻ വളരെ അധികം ലേബലുകൾ ഉണ്ട്. വ്യത്യസ്തമായ ഒരു തന്ത്രം പരീക്ഷിക്കാം: ഔട്ട്‌ലൈയറുകൾ മാത്രം ലേബൽ ചെയ്യുക, ലേബലുകൾ ചാർട്ടിനുള്ളിൽ സജ്ജമാക്കുക. ലേബലിംഗിന് കൂടുതൽ സ്ഥലം നൽകാൻ സ്കാറ്റർ ചാർട്ട് ഉപയോഗിക്കാം:

plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)

for i in range(len(birds)):
    x = birds['Name'][i]
    y = birds['MaxWingspan'][i]
    plt.plot(x, y, 'bo')
    if birds['MaxWingspan'][i] > 500:
        plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12)
    
plt.show()

ഇവിടെ എന്താണ് സംഭവിക്കുന്നത്? നിങ്ങൾ tick_params ഉപയോഗിച്ച് താഴെയുള്ള ലേബലുകൾ മറച്ചുവെച്ചു, പിന്നെ നിങ്ങളുടെ പക്ഷികളുടെ ഡാറ്റാസെറ്റിൽ ലൂപ്പ് സൃഷ്ടിച്ചു. bo ഉപയോഗിച്ച് ചെറിയ നീല വൃത്താകൃതിയിലുള്ള ഡോട്ടുകൾ പ്ലോട്ട് ചെയ്ത്, പരമാവധി വിങ്‌സ്‌പാൻ 500-ൽ കൂടുതലുള്ള ഏതെങ്കിലും പക്ഷിയെ കണ്ടെത്തി, ആ ഡോട്ടിന് അടുത്ത് ലേബൽ പ്രദർശിപ്പിച്ചു. y അക്ഷത്തിൽ ലേബലുകൾ കുറച്ച് മാറ്റി (y * (1 - 0.05)) പക്ഷിയുടെ പേര് ലേബലായി ഉപയോഗിച്ചു.

നിങ്ങൾ എന്ത് കണ്ടെത്തി?

outliers

നിങ്ങളുടെ ഡാറ്റ ഫിൽട്ടർ ചെയ്യുക

ബാൾഡ് ഈഗിൾക്കും പ്രെയറി ഫാൽക്കണിനും, വളരെ വലിയ പക്ഷികളായിരിക്കാം, പക്ഷേ പരമാവധി വിങ്‌സ്‌പാനിൽ ഒരു അധികം 0 ചേർത്തിട്ടുള്ള തെറ്റായ ലേബലിംഗാണ്. 25 മീറ്റർ വിങ്‌സ്‌പാൻ ഉള്ള ബാൾഡ് ഈഗിൾ കാണാൻ സാധ്യത കുറവാണ്, പക്ഷേ ഉണ്ടെങ്കിൽ ദയവായി ഞങ്ങളെ അറിയിക്കുക! ആ രണ്ട് ഔട്ട്‌ലൈയറുകൾ ഇല്ലാതെ പുതിയ ഡാറ്റാഫ്രെയിം സൃഷ്ടിക്കാം:

plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
    x = birds['Name'][i]
    y = birds['MaxWingspan'][i]
    if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']:
        plt.plot(x, y, 'bo')
plt.show()

ഔട്ട്‌ലൈയറുകൾ ഫിൽട്ടർ ചെയ്തതോടെ, നിങ്ങളുടെ ഡാറ്റ കൂടുതൽ ഏകീകൃതവും മനസ്സിലാക്കാൻ എളുപ്പവുമാണ്.

scatterplot of wingspans

ഇപ്പോൾ വിങ്‌സ്‌പാൻ സംബന്ധിച്ച് കുറഞ്ഞത് ശുദ്ധമായ ഡാറ്റാസെറ്റ് ഉണ്ടാകുമ്പോൾ, ഈ പക്ഷികളെക്കുറിച്ച് കൂടുതൽ കണ്ടെത്താം.

ലൈനും സ്കാറ്റർ പ്ലോട്ടുകളും ഡാറ്റ മൂല്യങ്ങളും അവയുടെ വിതരണങ്ങളും പ്രദർശിപ്പിക്കുമ്പോൾ, ഈ ഡാറ്റാസെറ്റിൽ ഉള്ള മൂല്യങ്ങളെക്കുറിച്ച് ചിന്തിക്കണം. അളവിനെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾക്ക് ഉത്തരം കണ്ടെത്താൻ ദൃശ്യവൽക്കരണങ്ങൾ സൃഷ്ടിക്കാം:

പക്ഷികളുടെ എത്ര വിഭാഗങ്ങളുണ്ട്, അവയുടെ എണ്ണം എത്രയാണ്?
എത്ര പക്ഷികൾ നശിച്ചുപോയവ, അപകടത്തിൽപെട്ടവ, അപൂർവവ, സാധാരണവ?
ലിനിയസിന്റെ പദവിനുസരിച്ച് വിവിധ ജീനസുകളും ഓർഡറുകളും എത്രയുണ്ട്?

ബാർ ചാർട്ടുകൾ പരിശോധിക്കുക

ഡാറ്റയുടെ ഗ്രൂപ്പിംഗുകൾ കാണിക്കേണ്ടപ്പോൾ ബാർ ചാർട്ടുകൾ പ്രായോഗികമാണ്. ഈ ഡാറ്റാസെറ്റിലുള്ള പക്ഷികളുടെ വിഭാഗങ്ങൾ പരിശോധിച്ച് ഏതാണ് ഏറ്റവും സാധാരണമായത് എന്ന് കാണാം.

നോട്ട്ബുക്ക് ഫയലിൽ ഒരു അടിസ്ഥാന ബാർ ചാർട്ട് സൃഷ്ടിക്കുക

മുൻപത്തെ വിഭാഗത്തിൽ കണ്ടെത്തിയ രണ്ട് ഔട്ട്‌ലൈയർ പക്ഷികളെ ഫിൽട്ടർ ചെയ്യാം, അവരുടെ വിങ്‌സ്‌പാൻ ടൈപ്പോ തിരുത്താം, അല്ലെങ്കിൽ വിങ്‌സ്‌പാൻ മൂല്യങ്ങളിൽ ആശ്രയിക്കാത്ത ഈ അഭ്യാസങ്ങൾക്ക് അവയെ ഉൾപ്പെടുത്താം.

ബാർ ചാർട്ട് സൃഷ്ടിക്കാൻ, നിങ്ങൾ ശ്രദ്ധിക്കേണ്ട ഡാറ്റ തിരഞ്ഞെടുക്കാം. ബാർ ചാർട്ടുകൾ കച്ച ഡാറ്റയിൽ നിന്നു സൃഷ്ടിക്കാം:

birds.plot(x='Category',
        kind='bar',
        stacked=True,
        title='Birds of Minnesota')

full data as a bar chart

എന്നാൽ ഈ ബാർ ചാർട്ട് വായിക്കാൻ കഴിയുന്നില്ല, കാരണം ഗ്രൂപ്പുചെയ്യാത്ത ഡാറ്റ വളരെ കൂടുതലാണ്. നിങ്ങൾ പ്ലോട്ട് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഡാറ്റ മാത്രം തിരഞ്ഞെടുക്കണം, അതിനാൽ പക്ഷികളുടെ വിഭാഗം അടിസ്ഥാനമാക്കി നീളം നോക്കാം.

നിങ്ങളുടെ ഡാറ്റയിൽ നിന്ന് പക്ഷികളുടെ വിഭാഗം മാത്രം ഉൾപ്പെടുത്താൻ ഫിൽട്ടർ ചെയ്യുക.

Pandas ഉപയോഗിച്ച് ഡാറ്റ കൈകാര്യം ചെയ്യുകയും Matplotlib ഉപയോഗിച്ച് ചാർട്ട് സൃഷ്ടിക്കുകയും ചെയ്യുന്നതാണ് ശ്രദ്ധിക്കുക.

വിവിധ വിഭാഗങ്ങൾ 많아서, ഈ ചാർട്ട് ലംബമായി പ്രദർശിപ്പിച്ച് ഉയരം ക്രമീകരിക്കാം:

category_count = birds.value_counts(birds['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()

category and length

ഈ ബാർ ചാർട്ട് ഓരോ വിഭാഗത്തിലും പക്ഷികളുടെ എണ്ണം നല്ല കാഴ്ച നൽകുന്നു. ഒരു നിമിഷത്തിൽ, ഈ പ്രദേശത്തെ ഏറ്റവും വലിയ പക്ഷി എണ്ണം Ducks/Geese/Waterfowl വിഭാഗത്തിലാണ് എന്ന് കാണാം. മിന്നസോട്ട '10,000 തടാകങ്ങളുടെ നാട്' ആകുന്നതിനാൽ ഇത് അത്ഭുതമല്ല!

ഈ ഡാറ്റാസെറ്റിൽ മറ്റ് എണ്ണങ്ങൾ പരീക്ഷിച്ച് നോക്കൂ. എന്തെങ്കിലും നിങ്ങളെ അത്ഭുതപ്പെടുത്തുന്നുണ്ടോ?

ഡാറ്റ താരതമ്യം ചെയ്യൽ

പുതിയ അക്ഷങ്ങൾ സൃഷ്ടിച്ച് ഗ്രൂപ്പുചെയ്ത ഡാറ്റയുടെ വ്യത്യസ്ത താരതമ്യങ്ങൾ പരീക്ഷിക്കാം. പക്ഷിയുടെ MaxLength-നെ അതിന്റെ വിഭാഗം അടിസ്ഥാനമാക്കി താരതമ്യം ചെയ്യുക:

maxlength = birds['MaxLength']
plt.barh(y=birds['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()

comparing data

ഇവിടെ എന്തും അത്ഭുതപ്പെടുത്തുന്നില്ല: ഹമ്മിംഗ്‌ബേർഡുകൾക്ക് പെലിക്കാനുകളോ ഗീസുകളോ അപേക്ഷിച്ച് ഏറ്റവും കുറഞ്ഞ MaxLength ഉണ്ട്. ഡാറ്റ ലജിക്കൽ ആകുമ്പോൾ നല്ലതാണ്!

ഡാറ്റ സൂപ്പർഇംപോസിംഗ് ചെയ്ത് ബാർ ചാർട്ടുകളുടെ കൂടുതൽ രസകരമായ ദൃശ്യവൽക്കരണങ്ങൾ സൃഷ്ടിക്കാം. ഒരു പക്ഷി വിഭാഗത്തിൽ കുറഞ്ഞതും പരമാവതുമായ നീളം സൂപ്പർഇംപോസ് ചെയ്യാം:

minLength = birds['MinLength']
maxLength = birds['MaxLength']
category = birds['Category']

plt.barh(category, maxLength)
plt.barh(category, minLength)

plt.show()

ഈ പ്ലോട്ടിൽ, ഓരോ പക്ഷി വിഭാഗത്തിന്റെയും കുറഞ്ഞ നീളം, പരമാവധി നീളം കാണാം. ഈ ഡാറ്റ പ്രകാരം, പക്ഷി വലുതായാൽ, അതിന്റെ നീളം വ്യത്യാസവും വലുതാണ് എന്ന് പറയാം. അത്ഭുതകരം!

superimposed values

🚀 ചലഞ്ച്

ഈ പക്ഷി ഡാറ്റാസെറ്റ് ഒരു പ്രത്യേക പരിസ്ഥിതിയിലെ വിവിധ തരത്തിലുള്ള പക്ഷികളെക്കുറിച്ചുള്ള ധാരാളം വിവരങ്ങൾ നൽകുന്നു. ഇന്റർനെറ്റിൽ തിരയുക, മറ്റ് പക്ഷി-കേന്ദ്രിത ഡാറ്റാസെറ്റുകൾ കണ്ടെത്താൻ ശ്രമിക്കുക. ഈ പക്ഷികളെക്കുറിച്ചുള്ള ചാർട്ടുകളും ഗ്രാഫുകളും നിർമ്മിച്ച് നിങ്ങൾ അറിയാത്ത വസ്തുതകൾ കണ്ടെത്താൻ അഭ്യാസം ചെയ്യുക.

പാഠം ശേഷം ക്വിസ്

അവലോകനം & സ്വയം പഠനം

ഈ ആദ്യ പാഠം Matplotlib ഉപയോഗിച്ച് അളവുകൾ ദൃശ്യവൽക്കരിക്കുന്നതിനെക്കുറിച്ച് ചില വിവരങ്ങൾ നൽകി. ദൃശ്യവൽക്കരണത്തിനായി ഡാറ്റാസെറ്റുകളുമായി പ്രവർത്തിക്കുന്ന മറ്റ് മാർഗങ്ങൾക്കായി കുറച്ച് ഗവേഷണം ചെയ്യുക. Plotly ഒരു ലൈബ്രറിയാണ്, ഇത് ഈ പാഠങ്ങളിൽ ഉൾപ്പെടുത്തുന്നില്ല, അതിനാൽ അത് എന്ത് നൽകുന്നു എന്ന് നോക്കുക.

അസൈൻമെന്റ്

ലൈനുകൾ, സ്കാറ്ററുകൾ, ബാറുകൾ


അസൂയാ:
ഈ രേഖ AI വിവർത്തന സേവനം Co-op Translator ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖ അധികാരപരമായ ഉറവിടമായി കണക്കാക്കണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.