Python - plotly - 结合bubble和choropleth map

时间:2015-08-26 12:52:47

标签: python dictionary plotly

在这个问题R - plotly - combine bubble and chorpleth map的答案中,很好地描述了如何在一个地图中将气泡和等值线图组合在一起。我想在Python中复制完全相同的示例,但是我没有基于plotly文档(https://plot.ly/python/reference/)中提供的信息进行管理。

等效的R代码如下:

lon = c(-73.9865812, -118.2427266, -87.6244212, -95.3676974)
pop = c(8287238, 3826423, 2705627, 2129784)
df_cities = data.frame(cities, lat, lon, pop)

state_codes = c("NY", "CA", "IL", "TX")
pop = c(19746227.0, 38802500.0, 12880580.0, 26956958.0)
df_states = data.frame(state_codes, pop)

plot_ly(df_cities, lon=lon, lat=lat, 
        text=paste0(df_cities$cities,'<br>Population: ', df_cities$pop), 
        marker= list(size = sqrt(pop/10000) + 1), type="scattergeo",
        filename="stackoverflow/choropleth+scattergeo") %>%
  add_trace(z=df_states$pop,
            locations=df_states$state_codes, 
            text=paste0(df_states$state_codes, '<br>Population: ', df_states$pop),
            type="choropleth", 
            colors = 'Purples', 
            locationmode="USA-states") %>%
  layout(geo = list(scope="usa"))

如何在Python中实现?

1 个答案:

答案 0 :(得分:0)

我发现我必须稍微调整代码以使其工作:

cities = c('New York', 'Los Angeles', 'Chicago', 'Houston')
lat = c(40.7305991, 34.053717, 41.8755546, 29.7589382)
lon = c(-73.9865812, -118.2427266, -87.6244212, -95.3676974)
pop = c(8287238, 3826423, 2705627, 2129784)
df_cities = data.frame(cities, lat, lon, pop)

state_codes = c("NY", "CA", "IL", "TX")
pop = c(19746227.0, 38802500.0, 12880580.0, 26956958.0)
df_states = data.frame(state_codes, pop)

plot_ly(df_cities, lon=lon, lat=lat,
         text = paste0(df_cities$cities,'<br>Population: ', df_cities$pop),
         marker = list(size = sqrt(pop/10000) + 1), type="scattergeo",
         filename = "stackoverflow/choropleth+scattergeo") %>%
 add_trace(z=df_states$pop,
    locations = df_states$state_codes,
    text = paste0(df_states$state_codes, '<br>Population: ', df_states$pop),
    type = "choropleth",
    colors = 'Purples',
    locationmode = "USA-states") %>%
 layout(geo = list(scope="usa"))