【发布时间】:2015-06-05 06:55:06
【问题描述】:
我昨天问了如何将离散值映射到颜色,得到了以下有用的答案。
我正在尝试根据 4 个离散值 1、2、3、4 绘制颜色。我想将 1 定义为黑色,2 定义为红色,3 定义为黄色,4 定义为绿色。有人知道怎么做吗?
您可以改用imshow,并使用dict 来映射您想要的颜色:
colordict = {1:(0,0,0),2:(1,0,0),3:(1,1,0),4:(0,1,0)}
test = ([1,2,2,1,3],[1,1,1,1,4],[2,1,1,2,1])
test_rgb = [[colordict[i] for i in row] for row in test]
plt.imshow(test_rgb, interpolation = 'none')
但是,值列表有一些数据属性,我也想在图表中显示它们。具体有两点:
每个颜色列表都有一个唯一的类型,因此图表应该显示每个水平颜色条的类型。
每个颜色列表都有一个对应的位置列表,表示从最后一个开始的结束位置(都是从0开始到20结束)
dict = {'Type': ['A', 'B','C'], 'ColorList': [[1,2,2,1,3],[1,1,1,1,4],[2,1,1,2]], 'Position': [[3,6,9,15,20], [2,10,13,16,20], [6, 10, 12, 20]]}
df = pd.DataFrame(dict)
所以,除了 x 和 y 轴更改以指示颜色的位置和颜色列表的类型之外,图表应该看起来相似。
非常感谢任何帮助
【问题讨论】:
标签: python matplotlib