Додавання Легенди
Коли діаграма містить кілька елементів, додавання легенди допомагає уточнити, що означає кожен елемент. 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 включають:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Детальніше можна ознайомитися у документації legend()
Swipe to start coding
- Позначте найнижчі стовпці як
'primary sector', вказавши відповідний іменований аргумент. - Позначте стовпці посередині як
'secondary sector', вказавши відповідний іменований аргумент. - Позначте найвищі стовпці як
'tertiary sector', вказавши відповідний іменований аргумент. - Розмістіть легенду праворуч, по центру вертикалі.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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()`?
Чудово!
Completion показник покращився до 3.85
Додавання Легенди
Свайпніть щоб показати меню
Коли діаграма містить кілька елементів, додавання легенди допомагає уточнити, що означає кожен елемент. 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 включають:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Детальніше можна ознайомитися у документації legend()
Swipe to start coding
- Позначте найнижчі стовпці як
'primary sector', вказавши відповідний іменований аргумент. - Позначте стовпці посередині як
'secondary sector', вказавши відповідний іменований аргумент. - Позначте найвищі стовпці як
'tertiary sector', вказавши відповідний іменований аргумент. - Розмістіть легенду праворуч, по центру вертикалі.
Рішення
Дякуємо за ваш відгук!
single