【问题标题】:Holoviews change datashader colormapHoloviews 更改数据着色器颜色图
【发布时间】:2019-10-24 21:26:23
【问题描述】:

我正在尝试更改数据着色器使用的颜色图。

我试过了:

datashade(scatter, cmap='Reds')

其中scatterhv.Scatter 元素。这不起作用,因为 datashader 需要一个可迭代的或返回颜色的函数。因此,这是可行的:

datashade(scatter, cmap=['blue'])

那么我该如何获取'Reds' 颜色图并将其转换为datashader 可以使用的东西?

谢谢。

【问题讨论】:

    标签: python colormap holoviews datashader


    【解决方案1】:

    您还可以使用库hvplot,它构建在 HoloViews 之上 来创建绘图、使用数据着色器和更改颜色映射,所有这些都以方便的方式进行:

    import numpy as np
    import pandas as pd
    import hvplot.pandas
    
    df = pd.DataFrame({
        'x': np.random.normal(size=100000),
        'y': np.random.normal(size=100000),
    })
    
    # use keyword datashade=True to turn on datashading
    # use keyword cmap to change the default colormap
    df.hvplot.scatter(
        x='x', 
        y='y', 
        datashade=True, 
        cmap='Magma',
    )
    


    可在此处找到颜色图:
    http://holoviews.org/user_guide/Colormaps.html

    结果图:

    【讨论】:

      【解决方案2】:

      要从 Holoviews 可用的任何颜色图中进行选择,请使用以下代码:

      from holoviews.plotting.util import process_cmap
      
      datashade(scatter, cmap=process_cmap("Magma", provider="bokeh"))
      

      "Magma""Bokeh" 更改为any of the supported colormaps(感谢@Chris 提供链接)。


      请求:如果 datashade 支持 Holoviews 图的 opts 参数自动传输,那就太好了,正如此 GitHub 问题所要求的那样:https://github.com/holoviz/holoviews/issues/4125

      【讨论】:

        【解决方案3】:

        对;您不能将颜色图的字符串名称传递给 Datashader 的 cmap 参数,因为 Datashader 将单个字符串解释为单个颜色的名称,并通过将 R、G、B 通道设置为该颜色并从中构造颜色图然后改变 Alpha 通道。如果您需要颜色图,请将颜色列表(Bokeh 用于其调色板)或 Matplotlib 颜色图对象(不是字符串名称)传递给cmap

        from matplotlib import cm
        datashade(scatter, cmap=cm.Reds)
        

        【讨论】:

        猜你喜欢
        • 2019-05-30
        • 1970-01-01
        • 2020-08-01
        • 1970-01-01
        • 2013-11-25
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多