Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Legendan Lisääminen | Kaavioiden Mukauttaminen
Quizzes & Challenges
Quizzes
Challenges
/
Ultimate Visualization with Python

bookLegendan Lisääminen

Kun kaaviossa on useita elementtejä, selite auttaa selventämään, mitä kukin elementti edustaa. matplotlib tarjoaa useita tapoja luoda selite.

Ensimmäinen vaihtoehto

Kaikki selitteet voidaan määrittää suoraan plt.legend()-funktiossa:

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Tämä luo selitteen vasempaan yläkulmaan välittämällä listan nimikkeitä funktiolle plt.legend().

Toinen vaihtoehto

Voit myös määrittää nimikkeet suoraan piirtofunktioiden sisällä käyttämällä label=-parametria:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Tässä plt.legend() kerää automaattisesti nimet piirrettävistä elementeistä.

Kolmas vaihtoehto

Voit myös asettaa nimet käyttämällä palautetun artistin set_label()-metodia:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Selitteen sijainti

Argumentti loc määrittää, mihin kohtaan selite sijoitetaan. Oletusarvo 'best' pyytää matplotlib-kirjastoa valitsemaan automaattisesti parhaan sijainnin.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Kelvollisia arvoja loc-parametrille ovat: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Lisätietoa

Voit tutustua aiheeseen tarkemmin legend() dokumentaatiossa

Tehtävä

Swipe to start coding

  1. Merkitse alimmat palkit nimellä 'primary sector' käyttämällä sopivaa avainsana-argumenttia.
  2. Merkitse keskimmäiset palkit nimellä 'secondary sector' käyttämällä sopivaa avainsana-argumenttia.
  3. Merkitse ylimmät palkit nimellä 'tertiary sector' käyttämällä sopivaa avainsana-argumenttia.
  4. Sijoita selite oikealle puolelle, pystysuunnassa keskitettynä.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 3.85

bookLegendan Lisääminen

Pyyhkäise näyttääksesi valikon

Kun kaaviossa on useita elementtejä, selite auttaa selventämään, mitä kukin elementti edustaa. matplotlib tarjoaa useita tapoja luoda selite.

Ensimmäinen vaihtoehto

Kaikki selitteet voidaan määrittää suoraan plt.legend()-funktiossa:

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Tämä luo selitteen vasempaan yläkulmaan välittämällä listan nimikkeitä funktiolle plt.legend().

Toinen vaihtoehto

Voit myös määrittää nimikkeet suoraan piirtofunktioiden sisällä käyttämällä label=-parametria:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Tässä plt.legend() kerää automaattisesti nimet piirrettävistä elementeistä.

Kolmas vaihtoehto

Voit myös asettaa nimet käyttämällä palautetun artistin set_label()-metodia:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Selitteen sijainti

Argumentti loc määrittää, mihin kohtaan selite sijoitetaan. Oletusarvo 'best' pyytää matplotlib-kirjastoa valitsemaan automaattisesti parhaan sijainnin.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Kelvollisia arvoja loc-parametrille ovat: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Lisätietoa

Voit tutustua aiheeseen tarkemmin legend() dokumentaatiossa

Tehtävä

Swipe to start coding

  1. Merkitse alimmat palkit nimellä 'primary sector' käyttämällä sopivaa avainsana-argumenttia.
  2. Merkitse keskimmäiset palkit nimellä 'secondary sector' käyttämällä sopivaa avainsana-argumenttia.
  3. Merkitse ylimmät palkit nimellä 'tertiary sector' käyttämällä sopivaa avainsana-argumenttia.
  4. Sijoita selite oikealle puolelle, pystysuunnassa keskitettynä.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
single

single

some-alt