代码之家  ›  专栏  ›  技术社区  ›  mouch

如何使用Bokeh颜色映射处理形状文件中的重叠

  •  0
  • mouch  · 技术社区  · 6 年前

    我想用bokeh生成一个叶绿体图。 我已经准备好了我的数据集,包括法国各部门和他们的人口。我还下载了法国部门形状文件。

    在第一次试验后,我发现我的托盘被错误地应用于部门(有些比其他人更暗,人口较少)。

    我发现这很奇怪,我把相同的人安排到所有的部门只是为了检查,我发现不是所有的部门都有相同的颜色!在我的代码下面查找

    data = gdf.join(df)
    # apply same population per department
    data.population = 5678
    
    geo_src = bm.GeoJSONDataSource(geojson=data.to_json())
    
    # set up a log colormap
    cmap = bm.LogColorMapper(
        palette=bokeh.palettes.Blues9[::-1], # reverse the palette
    )
    
    
    # define web tools
    TOOLS = "pan,wheel_zoom,box_zoom,reset,hover,save"
    
    # set up bokeh figure
    p = figure(
        title="Population", 
        tools=TOOLS,
        toolbar_location="below",
        x_axis_location=None, 
        y_axis_location=None, 
        width=800, 
        height=800
    )
    
    # remove the grid
    p.grid.grid_line_color = None
    
    # core part !
    p.patches(
        'xs', 'ys', 
        fill_alpha=0.7, 
        fill_color={'field': 'population', 'transform': cmap},
        line_color='black', 
        line_width=0.5, 
        source=geo_src
    )
    
    # show plot
    show(p)
    
    

    见结果,

    enter image description here

    我的猜测是那些黑暗的部门有重叠的形状和博赫应用两倍的人口使他们更黑暗…

    我试图找到一种方法从形状文件中删除重叠(目前还没有成功),但我想知道是否有一种方法可以配置Bokeh,让它不要总结重叠?

    1 回复  |  直到 6 年前
        1
  •  0
  •   mouch    6 年前

    好吧,我终于明白我做错了什么。

    这不是关于重叠或类似的事情(我用qgis来确认没有重叠)。 相反,我注意到比其他部门更黑暗的部门实际上是一个被分割成多个部分的部门!

    这就是问题所在;当应用bokeh补丁时,我使用的填充字母小于1。我只需要将这个参数设置为1,这样无论这个部门是由什么样的零件组成,其颜色都是一样的!

    p.patches(
        'xs', 'ys', 
        fill_alpha=1, 
        fill_color={'field': 'population', 'transform': cmap},
        line_color='black', 
        line_width=0.5, 
        source=geo_src
    )