为了账号安全,请及时绑定邮箱和手机立即绑定

如何摆脱 Choropleth 的白色背景?

如何摆脱 Choropleth 的白色背景?

大话西游666 2022-07-19 16:50:25
我正在使用 Potly Dashboard 构建仪表板。我使用的是深色引导主题,因此我不想要白色背景。但是,我的地图现在看起来像这样:生成它的代码如下所示:trace_map = html.Div(    [        dcc.Graph(            id = "map",            figure = go.Figure(                data=go.Choropleth(                locations=code, # Spatial coordinates                z = df.groupby(['month']).sum()['Sales'].astype(int),                 locationmode = 'USA-states',                colorscale = 'Reds',                colorbar_title = "USD",            ), layout = go.Layout(title = 'The Cities Sold the Most Product',                                  font = {"size": 9, "color":"White"},                                  titlefont = {"size": 15, "color":"White"},                                  geo_scope='usa',                                  margin={"r":0,"t":40,"l":0,"b":0},                                  paper_bgcolor='#4E5D6C',                                  plot_bgcolor='#4E5D6C',                                  )            )        )    ])我已经尝试过paper_bgcolor,plot_bgcolor但无法使其工作。理想情况下,我想实现此图像的外观(请忽略红点):
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

一般来说:

fig.update_layout(geo=dict(bgcolor= 'rgba(0,0,0,0)'))

在您的具体示例中:

go.Layout(geo=dict(bgcolor= 'rgba(0,0,0,0)')

阴谋:

//img1.sycdn.imooc.com//62d6708400016e3406980361.jpg

代码:


import plotly.graph_objects as go


fig  = go.Figure(

                data=go.Choropleth(

                #locations=code, # Spatial coordinates

                #z = df.groupby(['month']).sum()['Sales'].astype(int), 

                locationmode = 'USA-states',

                colorscale = 'Reds',

                colorbar_title = "USD",

            ), layout = go.Layout(geo=dict(bgcolor= 'rgba(0,0,0,0)'),

                                  title = 'The Cities Sold the Most Product',

                                  font = {"size": 9, "color":"White"},

                                  titlefont = {"size": 15, "color":"White"},

                                  geo_scope='usa',

                                  margin={"r":0,"t":40,"l":0,"b":0},

                                  paper_bgcolor='#4E5D6C',

                                  plot_bgcolor='#4E5D6C',

                                  )

            )


fig.show()

你可能也想改变湖泊的颜色。但请注意,设置lakecolor =  'rgba(0,0,0,0)'将使湖泊与各州的颜色相同,而不是背景。所以我会去lakecolor='#4E5D6C'。你当然可以用 做同样的事情bgcolor,但是将它设置为摆脱'rgba(0,0,0,0)'你特别要求的白色。


湖色图:

//img1.sycdn.imooc.com//62d670910001f74f07060371.jpg

湖色代码:


import plotly.graph_objects as go


fig  = go.Figure(

                data=go.Choropleth(

                #locations=code, # Spatial coordinates

                #z = df.groupby(['month']).sum()['Sales'].astype(int), 

                locationmode = 'USA-states',

                colorscale = 'Reds',

                colorbar_title = "USD",

            ), layout = go.Layout(geo=dict(bgcolor= 'rgba(0,0,0,0)', lakecolor='#4E5D6C'),

                                  title = 'The Cities Sold the Most Product',

                                  font = {"size": 9, "color":"White"},

                                  titlefont = {"size": 15, "color":"White"},

                                  geo_scope='usa',

                                  margin={"r":0,"t":40,"l":0,"b":0},

                                  paper_bgcolor='#4E5D6C',

                                  plot_bgcolor='#4E5D6C',

                                  )

            )


fig.show()

subunitcolor我们也可以更改状态边界颜色,或者在这种情况下更神秘地称为。为了更好地匹配您想要的最终结果,我们还可以为土地颜色增添趣味:


国家边界和国家颜色,情节:

//img1.sycdn.imooc.com//62d670a10001f79107010366.jpg

状态边界和状态颜色,代码:


import plotly.graph_objects as go


fig  = go.Figure(

                data=go.Choropleth(

                #locations=code, # Spatial coordinates

                #z = df.groupby(['month']).sum()['Sales'].astype(int), 

                locationmode = 'USA-states',

                colorscale = 'Reds',

                colorbar_title = "USD",

            ), layout = go.Layout(geo=dict(bgcolor= 'rgba(0,0,0,0)', lakecolor='#4E5D6C',

                                          landcolor='rgba(51,17,0,0.2)',

                                          subunitcolor='grey'),

                                  title = 'The Cities Sold the Most Product',

                                  font = {"size": 9, "color":"White"},

                                  titlefont = {"size": 15, "color":"White"},

                                  geo_scope='usa',

                                  margin={"r":0,"t":40,"l":0,"b":0},

                                  paper_bgcolor='#4E5D6C',

                                  plot_bgcolor='#4E5D6C',

                                  )

            )


fig.show()


查看完整回答
反对 回复 2022-07-19
?
繁星coding

TA贡献1797条经验 获得超4个赞

我在这里找到了自己的方式,因为我想改变我的 Choroplethmapbox 的主题。接受的解决方案有所帮助,但最终我发现下面的代码适用于我的情况:


实例化图

fig = go.Figure()

添加一些痕迹

fig.add_trace(go.Choroplethmapbox(geojson=data_for_choropleth_geojson, 

                                  locations=data_for_choropleth['fips'],

                                  z=data_for_choropleth['total_population'],

                                  featureidkey='properties.fips'

                              ))

最后,使用 update_layout 更改主题

fig.update_layout(

    hovermode='closest',

    mapbox=dict(

                # style options: "basic", "streets", "outdoors", 

                # "dark", "satellite", or "satellite-streets","light"

                # "open-street-map", "carto-positron", 

                # "carto-darkmatter", "stamen-terrain", 

                # "stamen-toner" or "stamen-watercolor"

                style='light',

                bearing=0,

                pitch=0,

                accesstoken=TOKEN,

                zoom=5,

                center=dict(

                    lat=29.4652568,

                    lon=-98.613121

        )

)


查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信