Робота з легендою
Коли на графіку присутні декілька елементів, додавання легенди допомагає уточнити, що саме представляє кожен елемент. matplotlib пропонує кілька способів створення легенди.
Перший варіант
Можна визначити всі підписи безпосередньо у plt.legend():
123456789101112131415161718import 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()
Це створює легенду у верхньому лівому куті шляхом передачі списку міток у plt.legend().
Другий варіант
Можна також призначати мітки безпосередньо у функціях побудови графіків, використовуючи параметр label=:
1234567891011121314151617181920import 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()
Тут plt.legend() автоматично збирає підписи з побудованих елементів.
Третій варіант
Можна також встановити підписи за допомогою методу set_label() повернутого художника:
12345678910111213141516171819202122import 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()
Розташування легенди
Аргумент loc визначає, де буде розташована легенда. Значення за замовчуванням 'best' дозволяє matplotlib автоматично вибрати оптимальне місце.
12345678910111213141516171819202122import 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()
Допустимі значення для loc включають:
|
|
|
|---|---|---|
|
|
|
|
|
|
Ви також можете використовувати опцію 'best', яка автоматично розміщує легенду в місці з найменшим перекриттям із відображеними даними. Крім того, використання 'right' дає той самий результат, що й 'center right'.
Ви можете дізнатися більше у legend() документації
Swipe to start coding
- Позначити найнижчі стовпці як
'primary sector', вказавши відповідний іменований аргумент. - Позначити стовпці посередині як
'secondary sector', вказавши відповідний іменований аргумент. - Позначити найвищі стовпці як
'tertiary sector', вказавши відповідний іменований аргумент. - Розмістити легенду праворуч, по центру вертикалі.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 6.25
Робота з легендою
Свайпніть щоб показати меню
Коли на графіку присутні декілька елементів, додавання легенди допомагає уточнити, що саме представляє кожен елемент. matplotlib пропонує кілька способів створення легенди.
Перший варіант
Можна визначити всі підписи безпосередньо у plt.legend():
123456789101112131415161718import 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()
Це створює легенду у верхньому лівому куті шляхом передачі списку міток у plt.legend().
Другий варіант
Можна також призначати мітки безпосередньо у функціях побудови графіків, використовуючи параметр label=:
1234567891011121314151617181920import 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()
Тут plt.legend() автоматично збирає підписи з побудованих елементів.
Третій варіант
Можна також встановити підписи за допомогою методу set_label() повернутого художника:
12345678910111213141516171819202122import 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()
Розташування легенди
Аргумент loc визначає, де буде розташована легенда. Значення за замовчуванням 'best' дозволяє matplotlib автоматично вибрати оптимальне місце.
12345678910111213141516171819202122import 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()
Допустимі значення для loc включають:
|
|
|
|---|---|---|
|
|
|
|
|
|
Ви також можете використовувати опцію 'best', яка автоматично розміщує легенду в місці з найменшим перекриттям із відображеними даними. Крім того, використання 'right' дає той самий результат, що й 'center right'.
Ви можете дізнатися більше у legend() документації
Swipe to start coding
- Позначити найнижчі стовпці як
'primary sector', вказавши відповідний іменований аргумент. - Позначити стовпці посередині як
'secondary sector', вказавши відповідний іменований аргумент. - Позначити найвищі стовпці як
'tertiary sector', вказавши відповідний іменований аргумент. - Розмістити легенду праворуч, по центру вертикалі.
Рішення
Дякуємо за ваш відгук!
single