第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 GeoJSONDataSource 和 CategoricalColorMapper

如何使用 GeoJSONDataSource 和 CategoricalColorMapper

UYOU 2021-11-16 15:32:52
我正在嘗試為散景補(bǔ)丁圖添加一個(gè)圖例,但我最終只有一個(gè)圖例項(xiàng)(并且標(biāo)簽錯(cuò)誤)。我有一個(gè)多邊形的形狀文件。每個(gè)多邊形都有一個(gè)名為“類別”的屬性,它可以取值“A”、“B”、“C”、“D”和“E”。我將形狀文件轉(zhuǎn)換為 geojson 并隨后創(chuàng)建一個(gè)散景圖塊圖,使用 CategoricalColorMapper 根據(jù)它所在的“類別”為每個(gè)多邊形添加顏色。現(xiàn)在我希望圖例顯示五個(gè)類別選項(xiàng)及其各自的顏色。這是我的代碼:import geopandas as gpdfrom bokeh.io import show, output_notebook, output_file, export_pngfrom bokeh.models import GeoJSONDataSource, CategoricalColorMapper, Legend, LegendItemfrom bokeh.plotting import figure, reset_outputfrom bokeh.transform import factor_cmapimport seleniumimport numpy as npgdf = gpd.GeoDataFrame.from_file("test.shp")gdf_json = gdf.to_json()source_shape = GeoJSONDataSource(geojson=gdf_json)cmap = CategoricalColorMapper(palette=["black", "purple", "pink", "brown", "blue"], factors=['A','B','C','D', 'E'])p = figure(height=500, match_aspect=True,    h_symmetry=False, v_symmetry=False, min_border=0)p.patches('xs', 'ys', source=source_shape, fill_color={'field': 'category', 'transform': cmap},             line_color='black', line_width=0.5, legend='category')export_png(p, filename="map.png")但是,我得到的輸出如下: map.png output圖例僅顯示一項(xiàng),帶有標(biāo)簽“類別”而不是實(shí)際類別名稱。我該如何解決這個(gè)問題,以便圖例顯示所有 5 個(gè)類別及其標(biāo)簽(A、B、C、D、E)?
查看完整描述

2 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

這段代碼可以滿足您的要求,但是,我認(rèn)為GeoDataFrame直接操作而不是轉(zhuǎn)換為JSON. 此代碼與 Bokeh v1.0.4 兼容。


from bokeh.models import GeoJSONDataSource, CategoricalColorMapper

from bokeh.plotting import figure, show

from bokeh.io import export_png

import geopandas as gpd

import random

import json


gdf = gpd.GeoDataFrame.from_file("Judete/Judete.shp")

gdf_json = gdf.to_json()

gjson = json.loads(gdf_json)


categories = ['A', 'B', 'C', 'D', 'E']

for item in gjson['features']:

    item['properties']['category'] = random.choice(categories)


source_shapes = {}

for category in categories:

    source_shapes[category] = {"type": "FeatureCollection", "features": []}


for item in gjson['features']:

    source_shapes[item['properties']['category']]['features'].append(item)


p = figure(match_aspect = True, min_border = 0,

           h_symmetry = False, v_symmetry = False,

           x_axis_location = None, y_axis_location = None)


cmap = CategoricalColorMapper(palette = ["orange", "purple", "pink", "brown", "blue"], 

                              factors = ['A', 'B', 'C', 'D', 'E'])

for category in categories:

    source_shape = GeoJSONDataSource(geojson = json.dumps(source_shapes[category]))

    p.patches('xs', 'ys', fill_color = {'field': 'category', 'transform': cmap},

                          line_color = 'black', line_width = 0.5,

                          legend = category, source = source_shape,)

p.legend.click_policy = 'hide'

show(p) # export_png(p, filename = "map.png")

結(jié)果:

http://img1.sycdn.imooc.com//61935ee2000134fb04030294.jpg

查看完整回答
反對 回復(fù) 2021-11-16
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

似乎圖例當(dāng)前不與 GeoJSONDataSource 一起使用,因?yàn)榇嬖谝粋€(gè)未解決的未解決問題Legend 不與 GeoJSONDataSource #5904 一起使用。


查看完整回答
反對 回復(fù) 2021-11-16
  • 2 回答
  • 0 關(guān)注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號