#python #matplotlib #data-visualization #bar-chart
#python #matplotlib #визуализация данных #гистограмма
Вопрос:
Привет, я хочу создать гистограмму, которая непрерывно меняет цвета, не складывая ее. Это мой текущий результат
import matplotlib.pyplot as plt
data1 = ['A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'B']
data2 = ['B', 'A', 'C', 'C', 'C', 'D', 'E', 'E', 'B']
data3 = ['C', 'B', 'C', 'B', 'C', 'D', 'E', 'E', 'B']
for i in range(len(data1) - 1):
if data1[i] == "A":
colour = "lightgrey"
plt.bar('A', data1[i], color=colour, hatch='.')
elif data1[i] == "B":
colour = "grey"
plt.bar('A', data1[i], color=colour, hatch='|')
elif data1[i] == 'C':
colour = "darkblue"
plt.bar('A', data1[i], color=colour, hatch=' ')
elif data1[i] == 'D':
colour = "pink"
plt.bar('A', data1[i], color=colour, hatch='*')
elif data1[i] == 'E':
colour = "orange"
plt.bar('A', data1[i], color=colour, hatch='x')
plt.show()
Комментарии:
1. «гистограмма, которая непрерывно меняет цвета, не складывая ее» — вы имеете в виду диаграмму областей?
2. @BigBen Нет, я имею в виду гистограмму. Я хочу, чтобы панель менялась каждый раз, когда она будет видеть определенное значение, как показано выше
3. В matplotlib есть метод, называемый bar . Это позволяет создавать гистограммы внутри matplotlib. К сожалению, это все, что мне известно. Существует ссылка, которая поможет вам создавать гистограммы. datatofish.com/bar-chart-python-matplotlib /…
4. Это может быть я, но я просто вижу столбчатую диаграмму. Чем отличается ваш желаемый результат?
5. @Mr.T Когда я складываю гистограмму, она сортирует значение от a до e, а я этого не хочу. Я хочу, чтобы моя панель меняла цвет всякий раз, когда она будет видеть или проверять определенное значение
Ответ №1:
Ваши столбцы перекрываются. Давайте попробуем построить их снова с помощью bottom
:
colors = {'A':'lightgrey','B':'grey',
'C':'darkblue', 'D':'pink',
'E':'orange'}
hatches = {'A':'.','B':'|','C':' ','D':'*', 'E':'x'}
for i, val in enumerate(data1):
plt.bar('A', 0.9,,
bottom=i,
color=colors[val],
hatch=hatches[val])
Вывод:
Комментарии:
1. Есть ли способ иметь одну букву «А» в качестве метки?
2. @JanKlimaszewski это была ошибка с моей стороны. Обновленный код выдает
A
только один.