Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Додавання Легенди | Налаштування Графіків
Універсальна Візуалізація з Python

bookДодавання Легенди

Коли діаграма містить кілька елементів, додавання легенди допомагає уточнити, що означає кожен елемент. matplotlib пропонує кілька способів створення легенди.

Перший варіант

Можна визначити всі підписи безпосередньо у plt.legend():

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

Це створює легенду у верхньому лівому куті шляхом передачі списку міток у plt.legend().

Другий варіант

Можна також призначати мітки безпосередньо у функціях побудови графіків, використовуючи параметр label=:

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

Тут plt.legend() автоматично збирає підписи з відображених елементів.

Третій варіант

Можна також встановити підписи за допомогою методу set_label() повернутого художника:

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

Розташування легенди

Аргумент loc визначає, де буде розташована легенда. Значення за замовчуванням 'best' дозволяє matplotlib автоматично обрати оптимальне місце.

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

Допустимі значення для loc включають: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Додаткове вивчення

Детальніше можна ознайомитися у документації legend()

Завдання

Swipe to start coding

  1. Позначте найнижчі стовпці як 'primary sector', вказавши відповідний іменований аргумент.
  2. Позначте стовпці посередині як 'secondary sector', вказавши відповідний іменований аргумент.
  3. Позначте найвищі стовпці як 'tertiary sector', вказавши відповідний іменований аргумент.
  4. Розмістіть легенду праворуч, по центру вертикалі.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 2
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain the difference between these three legend options?

How do I customize the legend appearance further?

What happens if I don't specify the `loc` parameter in `plt.legend()`?

close

bookДодавання Легенди

Свайпніть щоб показати меню

Коли діаграма містить кілька елементів, додавання легенди допомагає уточнити, що означає кожен елемент. matplotlib пропонує кілька способів створення легенди.

Перший варіант

Можна визначити всі підписи безпосередньо у plt.legend():

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

Це створює легенду у верхньому лівому куті шляхом передачі списку міток у plt.legend().

Другий варіант

Можна також призначати мітки безпосередньо у функціях побудови графіків, використовуючи параметр label=:

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

Тут plt.legend() автоматично збирає підписи з відображених елементів.

Третій варіант

Можна також встановити підписи за допомогою методу set_label() повернутого художника:

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

Розташування легенди

Аргумент loc визначає, де буде розташована легенда. Значення за замовчуванням 'best' дозволяє matplotlib автоматично обрати оптимальне місце.

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

Допустимі значення для loc включають: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Додаткове вивчення

Детальніше можна ознайомитися у документації legend()

Завдання

Swipe to start coding

  1. Позначте найнижчі стовпці як 'primary sector', вказавши відповідний іменований аргумент.
  2. Позначте стовпці посередині як 'secondary sector', вказавши відповідний іменований аргумент.
  3. Позначте найвищі стовпці як 'tertiary sector', вказавши відповідний іменований аргумент.
  4. Розмістіть легенду праворуч, по центру вертикалі.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 2
single

single

some-alt