首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Holoviews/Datashader中更改分类数据的色彩映射

在Holoviews/Datashader中更改分类数据的色彩映射
EN

Stack Overflow用户
提问于 2019-01-04 00:50:18
回答 1查看 1.5K关注 0票数 4

我正在尝试使用Datashader和Holoviews来可视化分类空间数据,类似于https://anaconda.org/jbednar/census-hv-dask/notebook。但是,当我尝试为类别分配不同的颜色时,我总是得到相同的(可能是默认的)颜色(An example of the output image)。

这是我在Jupyter notebook中运行的代码。有没有人可以建议我如何使自定义色彩映射表工作?或者至少运行代码,看看最终的颜色是否与图例匹配。谢谢!

代码语言:javascript
复制
from sklearn.datasets.samples_generator import make_blobs
from matplotlib import pyplot
import pandas as pd

import holoviews as hv
import geoviews as gv
import datashader as ds
from cartopy import crs
from matplotlib.cm import get_cmap
from holoviews.operation.datashader import datashade, aggregate
hv.notebook_extension('bokeh', width=95)

# Generating blob data:
X, y = make_blobs(n_samples=5000000, centers=5, n_features=2)
df = pd.DataFrame(dict(x=X[:,0], y=X[:,1], label=y))

# Plotting the blobs using datashader and holoviews:
%opts Overlay [width=800 height=455 xaxis=None yaxis=None show_grid=False] 
%opts Shape (fill_color=None line_width=1.5) [apply_ranges=False] 
%opts Points [apply_ranges=False] WMTS (alpha=0.5) NdOverlay [tools=['tap']]

color_key = {0:'red', 1:'blue', 2:'green', 3:'yellow', 4:'black'}
labels    = {0:'red', 1:'blue', 2:'green', 3:'yellow', 4:'black'}

color_points = hv.NdOverlay({labels[k]: gv.Points([0,0], crs=crs.PlateCarree(),
                            label=labels[k])(style=dict(color=v))
                            for k, v in color_key.items()})

dataset = gv.Dataset(df, kdims=['x', 'y'], vdims=['label'])
shaded = datashade(hv.Points(dataset), cmap=color_key, aggregator=ds.count_cat('label'))

shaded * color_points
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-04 01:11:58

该代码似乎不可运行(没有定义比赛,也没有导入gv ),但是在任何情况下,分类颜色都是由color_key参数决定的,而不是cmap,所以您需要将cmap=color_key更改为color_key=color_key

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54026510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档