我有一个类似这样的表格:
value type
10 0
12 1
13 1
14 2
生成虚拟数据:
import numpy as np
value = np.random.randint(1, 20, 10)
type = np.random.choice([0, 1, 2], 10)
我想在Python 3中使用matplotlib(v1.4)完成一个任务:
- 绘制
value
的直方图 - 按
type
分组,即使用不同颜色区分类型 - "bars"的位置应该是"dodge",即并排
- 由于value的范围很小,所以我会使用
identity
作为bins,即bin的宽度为1
问题:
- 如何根据
type
的值给条形图分配颜色,并从colormap中绘制颜色(例如Accent
或matplotlib中的其他cmap)?我不想使用命名颜色(即'b','k','r'
) - 我的直方图中的条形图重叠在一起,如何"躲避"条形图?
注意事项
- 我已经尝试了Seaborn、matplotlib和
pandas.plot
两个小时,但无法得到所需的直方图。 - 我阅读了matplotlib的示例和用户指南。令人惊讶的是,我没有找到有关如何从colormap中分配颜色的教程。
- 我在Google上搜索失败了,无法找到简洁的示例。
- 我猜想可以使用
matplotlib.pyplot
完成任务,而不需要导入许多模块,比如matplotlib.cm
、matplotlib.colors
。
hist
来实现这一点,因为我只用过hist
来绘制单个系列。 - maxymoo