Python цвет гистограммы matplotlib - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь отобразить некоторые данные в виде гистограммы с помощью xticks. В приведенном ниже коде мои полосы отображаются разными цветами. У меня вопрос: как сделать весь график одним цветом? Заранее спасибо.

import matplotlib.pyplot as plt

data = (5)
data_2 = (6)

plt.bar(1, data)
plt.bar(2, data_2)

plt.xticks([1,2], ('Hello', 'World'))

plt.show()

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Вот как это делается:

import matplotlib.pyplot as plt

data = (5)
data_2 = (6)

plt.bar([1,2], [data,data_2])

plt.xticks([1,2], ('Tom', 'Dick'))

plt.show()

Или добавьте color аргумент ключевого слова:

import matplotlib.pyplot as plt

data = (5)
data_2 = (6)
color = 'red'
plt.bar(1, data, color=color)
plt.bar(2, data_2, color=color)

plt.xticks([1,2], ('Tom', 'Dick'))

plt.show()

Вывод:

enter image description here

0 голосов
/ 17 июня 2020

Я думаю, что есть более простой способ получить одинаковый цвет для всех полос.

import matplotlib.pyplot as plt

x = [1,2]
x_ticks = ['Tom', 'Dick']
y = [5,6]
plt.bar(x, y)
plt.xticks(x, x_ticks);

Если вы хотите использовать pandas

import pandas as pd

df = pd.DataFrame({'x': [1,2],
                   'y': [5, 6],
                   'name': ['Tom', 'Dick']})

ax = df.plot(x='x', y='y', kind='bar')
ax.set_xticks(df.index)
ax.set_xticklabels(df["name"], rotation=0);

или даже проще

df.plot(x='name', y='y', kind='bar', rot=0);
...