python - plotly:突出显示/识别 choropleth 中的某些国家/地区
问题描述
我在 Python 中有以下等值线:
import plotly.offline as py
import plotly.graph_objs as go
countries = ['BDI', 'BEN', 'BFA', 'BWA', 'CIV', 'CMR', 'COD', 'CPV', 'ETH', 'GHA', 'GIN', 'GMB', 'KEN', 'LBR', 'LSO', 'MDG', 'MLI', 'MOZ', 'MUS', 'MWI', 'NER', 'NGA', 'RWA', 'SEN', 'SLE', 'SOM', 'STP', 'TCD', 'TGO', 'TZA', 'UGA', 'ZAF', 'ZMB', 'ZWE']
z = [5, 6, 1, 1, 2, 14, 7, 1, 3, 6, 1, 2, 13, 1, 3, 11, 4, 2, 1, 6, 1, 50, 18, 5, 2, 4, 1, 1, 4, 16, 15, 4, 10, 4]
layout = dict(geo={'scope': 'africa'})
data = dict(
type='choropleth',
locations=countries,
locationmode='ISO-3',
colorscale='Viridis',
z=z)
map = go.Figure(data=[data], layout=layout)
py.plot(map)
我想将一些国家强调为 2 个类别中的 1 个,比如说优先级。有些是优先级 1,有些是优先级 2,有些是非优先级。z
此优先级与图中的相应值无关。
在图中,我想从视觉上区分两个优先级别,以及应该保持默认格式的非优先国家。不过,所有这些都应该适合相同的色标。
这可以通过改变这些国家的阴影纹理来实现,例如对角线阴影。或者通过具有独特的轮廓,例如更粗、不同的颜色或虚线。
抱歉,对于所需的输出没有非常具体,我不确定 plotly 的能力,这是让一些国家脱颖而出的结果,不管它们的情节价值如何,这很重要。我对人们以前用于此类事情的任何方法持开放态度!
谢谢
解决方案
我也没有这方面的经验,但我会建议两种方法。
- 划定国家的边界。
- 自定义
colorscalse
.
import plotly.offline as py
import plotly.graph_objs as go
countries = ['BDI', 'BEN', 'BFA', 'BWA', 'CIV', 'CMR', 'COD', 'CPV', 'ETH', 'GHA', 'GIN', 'GMB', 'KEN', 'LBR', 'LSO', 'MDG', 'MLI', 'MOZ', 'MUS', 'MWI', 'NER', 'NGA', 'RWA', 'SEN', 'SLE', 'SOM', 'STP', 'TCD', 'TGO', 'TZA', 'UGA', 'ZAF', 'ZMB', 'ZWE']
z = [5, 6, 1, 1, 2, 14, 7, 1, 3, 6, 1, 2, 13, 1, 3, 11, 4, 2, 1, 6, 1, 50, 18, 5, 2, 4, 1, 1, 4, 16, 15, 4, 10, 4]
layout = dict(geo={'scope': 'africa'})
# colorscalec customize
scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
[0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]
data = dict(
type='choropleth',
locations=countries,
locationmode='ISO-3',
colorscale=scl,
autocolorscale = False,
marker = dict(line = dict (color = 'rgb(255,255,255)', width = 2)),
z=z)
map = go.Figure(data=[data], layout=layout)
py.plot(map)
推荐阅读
- postgresql - 使用 EXECUTE 格式时没有参数 $2 ( ... ) USING (param1, param2)
- java - 结果看起来像一个循环
- c# - gRPC c#中的全局异常处理
- python-3.x - 在不运行命令提示符的情况下运行程序(可见)
- jmeter - 在为 Drupal 应用程序加载 50 个用户的情况下运行 jmeter 测试一段时间时出错
- sql - 如何在 SQL 中检查数据级别是否正确?
- c# - Crypt_AES phpseclib 等效 C# 没有 IV
- android - 在排毒测试中画一条线
- python - pandas 应用更改 dtype
- php - 从数据库中获取下拉菜单的值