Вертикальная столбчатая диаграмма с использованием поворота = ‘vertical’ не работает

#python #numpy #matplotlib

#python #numpy #matplotlib

Вопрос:

Из примера библиотеки matplot использование rotation='vertical' lines_bars_and_markers не делает его вертикальным. Что я делаю не так?

 """
Simple demo of a horizontal bar chart.
"""
import matplotlib.pyplot as plt
plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt


# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3   10 * np.random.rand(len(people))
error = np.random.rand(len(people))

plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)
plt.yticks(y_pos, people)
plt.xlabel('Performance')
plt.title('How fast do you want to go today?')

plt.show()
rotation='vertical'
  

Ответ №1:

barh для горизонтальных гистограмм измените bar , а затем поменяйте местами данные для осей. Вы не можете просто писать rotation='vertical' , потому что это ничего не говорит matplotlib библиотеке, это просто создает строку, которая никогда не используется.

 import matplotlib.pyplot as plt
plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt


# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
x_pos = np.arange(len(people))
performance = 3   10 * np.random.rand(len(people))
error = np.random.rand(len(people))

plt.bar(x_pos, performance, yerr=error, align='center', alpha=0.4)
plt.xticks(x_pos, people)
plt.ylabel('Performance')
plt.title('How fast do you want to go today?')

plt.show()
  

Комментарии:

1. @Perlinn Измените его на 0.1, запустите повторно и узнайте через 2 секунды 🙂 Если вы чувствуете, что этот ответ решил вашу проблему, пожалуйста, подумайте о том, чтобы пометить его как правильный, чтобы люди знали, что проблема еще не открыта.

2. @Perlinn Более простой ответ на ваш вопрос — проверить документы . Альфа используется для установки прозрачности. 0 прозрачно, 1 непрозрачно, и вы можете выбирать значения между ними. Установка значения 1 в этом случае затенит нижнюю часть столбцов ошибок.

3. для чего это нужно? ошибка = np.random.rand(len (people))

4. @Perlinn удалите его из кода и удалите yerr=error, , затем повторно запустите и посмотрите на график. Ваш компьютер не взорвется, и вы сами увидите разницу. Я отвечаю так, потому что все, что я знаю о программировании, самоучка за достаточно короткий промежуток времени, и ключевым навыком для понимания является знание того, как самостоятельно исследовать эти вещи. Если есть что-то, чего вы не понимаете, выполните поиск в Google методом перебора и попробуйте получить ответ. Если все не удается, используйте переполнение стека.

5. понял! в любом случае удалил ее, поскольку она мне не помогла