plotly / plotly/plotly.R

Strange results with GeoJSON

未关闭
#1,778 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
R
星标
2.7k
派生
641
PR 合并指标
30 天内没有已合并 PR

描述

I tried plot choropleth with Highcharts GeoJSON.

Code to reproduce:

# packages ----------------------------------------------------------------
library(jsonlite)
library(plotly)

# prepare data ------------------------------------------------------------
# read geo data
map_data <- read_json(path = "https://raw.githubusercontent.com/highcharts/map-collection-dist/master/countries/es/es-all.geo.json")
# fill values to draw
df <- data.frame(
  id = unlist(lapply(map_data$features, "[[", "id")),
  name = unlist(lapply(map_data$features, "[[", c("properties", "name")))
)
df$value <- as.integer(runif(NROW(df), 0, 100))

# plotly ------------------------------------------------------------------
plotly_plt <- plot_ly() %>%
  add_trace(
    type = "choropleth",
    geojson = map_data,
    locations = df[["id"]],
    z = df[["value"]]
  ) %>%
  layout(
    geo = list(
      fitbounds = "locations"
    )
  )
plotly_plt

Screenshot of the result:
image

P.S.: This issue is repost SO question. Posted here because no responses on the SO.

Additional information:

─ Session info ────────────────────────────────────────────────────────────────
 setting  value                       
 version  R version 4.0.0 (2020-04-24)
 os       Arch Linux                  
 system   x86_64, linux-gnu           
 ui       RStudio                     
 language                             
 collate  ru_RU.UTF-8                 
 ctype    ru_RU.UTF-8                 
 tz       Asia/Novokuznetsk           
 date     2020-05-24                  

─ Packages ────────────────────────────────────────────────────────────────────
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.0.0)
 cli           2.0.2   2020-02-28 [1] CRAN (R 4.0.0)
 colorspace    1.4-1   2019-03-18 [1] CRAN (R 4.0.0)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 4.0.0)
 crosstalk     1.1.0.1 2020-03-13 [1] CRAN (R 4.0.0)
 data.table    1.12.8  2019-12-09 [1] CRAN (R 4.0.0)
 digest        0.6.25  2020-02-23 [1] CRAN (R 4.0.0)
 dplyr         0.8.5   2020-03-07 [1] CRAN (R 4.0.0)
 ellipsis      0.3.1   2020-05-15 [1] CRAN (R 4.0.0)
 fansi         0.4.1   2020-01-08 [1] CRAN (R 4.0.0)
 farver        2.0.3   2020-01-16 [1] CRAN (R 4.0.0)
 ggplot2     * 3.3.0   2020-03-05 [1] CRAN (R 4.0.0)
 glue          1.4.1   2020-05-13 [1] CRAN (R 4.0.0)
 gtable        0.3.0   2019-03-25 [1] CRAN (R 4.0.0)
 htmltools     0.4.0   2019-10-04 [1] CRAN (R 4.0.0)
 htmlwidgets   1.5.1   2019-10-08 [1] CRAN (R 4.0.0)
 httr          1.4.1   2019-08-05 [1] CRAN (R 4.0.0)
 jsonlite    * 1.6.1   2020-02-02 [1] CRAN (R 4.0.0)
 lazyeval      0.2.2   2019-03-15 [1] CRAN (R 4.0.0)
 lifecycle     0.2.0   2020-03-06 [1] CRAN (R 4.0.0)
 magrittr      1.5     2014-11-22 [1] CRAN (R 4.0.0)
 munsell       0.5.0   2018-06-12 [1] CRAN (R 4.0.0)
 pillar        1.4.4   2020-05-05 [1] CRAN (R 4.0.0)
 pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.0.0)
 plotly      * 4.9.2.1 2020-04-04 [1] CRAN (R 4.0.0)
 purrr         0.3.4   2020-04-17 [1] CRAN (R 4.0.0)
 R6            2.4.1   2019-11-12 [1] CRAN (R 4.0.0)
 Rcpp          1.0.4.6 2020-04-09 [1] CRAN (R 4.0.0)
 rlang         0.4.6   2020-05-02 [1] CRAN (R 4.0.0)
 rstudioapi    0.11    2020-02-07 [1] CRAN (R 4.0.0)
 scales        1.1.1   2020-05-11 [1] CRAN (R 4.0.0)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.0.0)
 tibble        3.0.1   2020-04-20 [1] CRAN (R 4.0.0)
 tidyr         1.1.0   2020-05-20 [1] CRAN (R 4.0.0)
 tidyselect    1.1.0   2020-05-11 [1] CRAN (R 4.0.0)
 vctrs         0.3.0   2020-05-11 [1] CRAN (R 4.0.0)
 viridisLite   0.3.0   2018-02-01 [1] CRAN (R 4.0.0)
 withr         2.2.0   2020-04-20 [1] CRAN (R 4.0.0)
 yaml          2.2.1   2020-02-01 [1] CRAN (R 4.0.0)

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先使用 Highcharts Spain GeoJSON 运行可复现的 R 示例,并检查等值区域 trace 如何处理 geojsonlocationsfitbounds。将渲染的地图与提供的截图进行比较;当 GeoJSON 区域和生成的值显示在预期位置,且不再出现所报告的异常结果时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
r
领域
data-visualization
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。