Python 更改HoloView/Datashader中分类数据的颜色映射

Python 更改HoloView/Datashader中分类数据的颜色映射,python,colormap,holoviews,datashader,Python,Colormap,Holoviews,Datashader,我正在尝试使用Datashader和Holoviews可视化分类空间数据,类似于。然而,当我尝试为类别分配不同的颜色时,我总是以相同(大概是默认)的颜色(.) 这是我在Jupyter笔记本中运行的代码。有谁能告诉我如何使自定义彩色地图工作吗?或者至少运行代码,看看最终的颜色是否与图例匹配。谢谢大家! 从sklearn.datasets.samples\u生成器导入make\u blob 从matplotlib导入pyplot 作为pd进口熊猫 将全息视图导入为hv 将地理视图作为gv导入 将da

我正在尝试使用Datashader和Holoviews可视化分类空间数据,类似于。然而,当我尝试为类别分配不同的颜色时,我总是以相同(大概是默认)的颜色(.)

这是我在Jupyter笔记本中运行的代码。有谁能告诉我如何使自定义彩色地图工作吗?或者至少运行代码,看看最终的颜色是否与图例匹配。谢谢大家!

从sklearn.datasets.samples\u生成器导入make\u blob
从matplotlib导入pyplot
作为pd进口熊猫
将全息视图导入为hv
将地理视图作为gv导入
将datashader作为ds导入
从cartopy进口crs
从matplotlib.cm导入获取cmap
从holoviews.operation.datashader导入datashade,聚合
高压笔记本_扩展('bokeh',宽度=95)
#正在生成blob数据:
十、 y=make_blob(n_样本=5000000,中心=5,n_特征=2)
df=pd.DataFrame(dict(x=x[:,0],y=x[:,1],label=y))
#使用datashader和HoloView打印水滴:
%选择覆盖[width=800 height=455 xaxis=None yaxis=None show\u grid=False]
%选择形状(填充颜色=无线条宽度=1.5)[应用范围=假]
%选择点[apply_ranges=False]WMTS(alpha=0.5)nOverlay[tools=['tap']]
颜色键={0:'red',1:'blue',2:'green',3:'yellow',4:'black'}
标签={0:'red',1:'blue',2:'green',3:'yellow',4:'black'}
color_points=hv.NdOverlay({labels[k]:gv.points([0,0],crs=crs.PlateCarree(),
标签=标签[k])(样式=dict(颜色=v))
颜色中的k,v_key.items()})
dataset=gv.dataset(df,kdims=['x','y'],vdims=['label']))
shaded=datashade(hv.Points(数据集),cmap=color\u key,aggregator=ds.count\u cat('label'))
着色*颜色点

该代码似乎无法运行(没有定义种族,也没有导入gv),但在任何情况下,分类颜色都是由
color\u key
参数决定的,而不是
cmap
,因此您需要将
cmap=color\u key
更改为
color\u key=color\u key
,谢谢您,詹姆斯,这解决了我的问题,我还将代码编辑为可运行。我还有一个问题:在您的示例笔记本中(在我的原始问题中的上面链接),您也使用了cmap参数而不是color_键参数(定义“着色”),但颜色是正确的。这和我的情况有什么不同?啊,这才是真正的问题!这个链接指向一个旧的笔记本,在我们有办法在实际的网站上显示笔记本之前,它就一直存在。过去只有一种设置颜色贴图的方法,但我们分割了颜色键和cmap选项,因为分类图与默认的cmap颜色贴图不兼容,但笔记本的副本尚未更新。另外,我们将把这些示例移到pyviz.org中,以便我们能够真正地维护它们。很抱歉给你带来困惑,我想我至少应该上传一个更新的nb。好的,从现在起,我将使用实际网站上的笔记本作为参考。再次感谢!事实证明,census_hv_dask是datashader.org上的“gerrymandering”笔记本的一个非常旧的副本,所以我删除了它以避免混淆。