【问题标题】:Is it possible to include maplines in highcharter maps?是否可以在高级地图中包含地图线?
【发布时间】:2016-04-04 06:14:36
【问题描述】:

我想使用一组边界颜色和宽度值用于县,另一组用于 highcharter 中的州线,就像 in this jsfiddle link 所做的那样。

series: [{
            mapData: countiesMap,
            data: data,
            joinBy: ['hc-key', 'code'],
            name: 'Unemployment rate',
            tooltip: {
                valueSuffix: '%'
            },
            borderWidth: 0.5,
            states: {
                hover: {
                    color: '#bada55'
                }
            }
        }, {
            type: 'mapline',
            name: 'State borders',
            data: [lines[0]],
            color: 'white'
        }, {
            type: 'mapline',
            name: 'Separator',
            data: [lines[1]],
            color: 'gray'
        }]

但是,我不了解数据结构,也看不到 highcharter api 如何允许这样做。这种地图可能吗?我的第一个直觉是为州边界添加一个不填充的多边形图层,但这似乎不是在 highmaps/highcharts 中使用的方法。

我想要的效果如图here。大胆的州边界与较轻的县边界。抱歉,声望不足,无法嵌入图片。

【问题讨论】:

  • 嗨,迈克尔,你有一个类似例子的链接。由于每个地图系列都修复了它们的属性,也许一种测试方法是一个一个地添加一个县,包括它们的具体颜色/宽度等
  • 我在上面用 jsfilddle 链接编辑了我的问题。也许现在更清楚了。我才几天就开始使用你的包裹,印象非常深刻。谢谢你写它。

标签: r highcharts


【解决方案1】:

基本上这是 Roco 的相同答案,但使用的是 highcharter。

直播: http://rpubs.com/jbkunst/is-it-possible-to-include-maplines-in-highcharter-maps

代码:

library("highcharter")
library("viridisLite")
library("dplyr")

data(unemployment)
data(uscountygeojson)
data(usgeojson)
dclass <- data_frame(from = seq(0, 10, by = 2),
                     to = c(seq(2, 10, by = 2), 50),
                     color = substring(viridis(length(from), option = "C"), 0, 7))
dclass <- list.parse3(dclass)
highchart(type = "map") %>% 
  hc_add_series_map(uscountygeojson, unemployment, value = "value", joinBy = "code",
                    lineWidth = 0.5, color = hex_to_rgba("#000000", 0.75)) %>% 
  hc_add_series(data = uscountygeojson, type = "mapline",
                lineWidth = 2, color = hex_to_rgba("#000000", 0.75)) %>% 
  hc_colorAxis(dataClasses = dclass)

希望对你有帮助。

感谢您使用该软件包!

【讨论】:

    【解决方案2】:

    如果你想改变边界的宽度,你通常会使用 viaborderWidth 属性,就像你已经为县线所做的那样。

    你的状态线是不同的类型,它们属于mapline 类型。对于这种类型,documentation 指定您需要使用 lineWidth 而不是 borderWidth。这是你需要改变的:

    {
      type: 'mapline',
      name: 'State borders',
      data: [lines[0]],
      color: 'black',
      lineWidth: 4
    }
    

    这是我如何更改您的初始 JSFiddle 以使州线比县线粗得多的示例: JSFiddle here

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多