首页 > 解决方案 > 使用 matplotlib 绘制数据并使用相同颜色对组直方图进行着色

问题描述

我正在尝试使用 matplotlib 库绘制图表。这是我的代码。

import numpy as np
import matplotlib.pyplot as plt
data = [[206.6, 735.4, 427.9, 175.2,384.4],
[487.5, 273.7, 742.6, 159.5,144],
[613.4, 0, 294.9, 0,0]]
X = np.arange(5)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)
ax.legend(labels=['Group-1', 'Group-2','Group-3','Group-4','Group-5'])

在此处输入图像描述

我希望上述图表组具有相同的颜色。例如,第 1 组直方图应该是Red,第 2 组直方图应该是Blue,第 3 组直方图应该是Orange,等等。我怎样才能使用上面的代码得到它

标签: pythonmatplotlibgraphdata-science

解决方案


以下将做我认为你要求从你的代码开始的事情。这个请求对我来说似乎有点奇怪,因为您可以在 x 轴上标记图组,因此颜色提供了一种标记每个系列的明显方式)。

import numpy as np
import matplotlib.pyplot as plt
data = [[206.6, 735.4, 427.9, 175.2,384.4],
[487.5, 273.7, 742.6, 159.5,144],
[613.4, 0, 294.9, 0,0]]
X = np.arange(5)
col_list = ['red','blue','orange','green','cyan']
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
handles = ax.bar(X + 0.00, data[0], color = col_list, width = 0.25)
ax.bar(X + 0.25, data[1], color = col_list, width = 0.25)
ax.bar(X + 0.50, data[2], color = col_list, width = 0.25)
ax.legend(labels=['Group-1','Group-2','Group-3','Group-4', 'Group-5'],
           handles=handles)
plt.show()

给出:

阴谋


推荐阅读