我目前在他们自己的子图中有一些散点图。格式化数据的方式是:
ID, X, Y, Colors, Area
0, x1, y1, r, 1
1, x2, y2, g, 1
2, x3, y3, r, 3
3, x4, y4, b, 4
....
n, xn, yn, g, 3
因此,当我绘制散点图时,它看起来像ax.scatter(X, Y, color=Colors)
因此,每个点都是红色,绿色或蓝色。我为每个Area
设置了不同的散点图。
我正在尝试在侧面创建自定义颜色条以显示三种颜色(红色,绿色和蓝色),以及每种颜色的关联标签。在这种情况下,它是一个收入阶层。
到目前为止,谷歌搜索引导我研究创建自定义色彩映射,然后使用该色彩图在自己的子图中绘制色条。但是,在经历matplotlib示例之前,我从来没有使用过自定义色彩映射。我有点不知所措。
到目前为止,我有这个,但我很确定它只是随机的东西(所有它给我的是ax3子图中的灰度色图):
cdict1 = {'red': ((0,0,0),(1,1,1)),
'green': ((0,0,0),(1,1,1)),
'blue': ((0,0,0),(1,1,1))}
rgbtest = LinearSegmentedColormap('test', cdict1)
plt.register_cmap(name='test', data=cdict1)
cmap = plt.get_cmap('test')
matplotlib.colorbar.ColorbarBase(ax3, cmap=rgbtest)
有什么建议吗?我希望这是有道理的。谢谢。干杯
答案 0 :(得分:0)
我最终还是坚持了下去。我不确定这是否是最佳方式 - 如果您有其他建议,或许我可以从中学习以备将来使用!
cmap = matplotlib.colors.ListedColormap(['green', 'blue', 'red'])
bounds=[0,125,200,400]
cax = inset_axes(ax3, width="8%", height='70%', loc=4)
cbar = matplotlib.colorbar.ColorbarBase(cax, cmap=cmap, boundaries=bounds)
cax.yaxis.set_ticks_position('left')
cbar.ax.set_yticklabels(['0', '125', '200', '200+'])
cax.yaxis.set_label_position('left')
cbar.set_label('Income (,000s)')