设置标记尺寸
问题描述:
如何在地图上以图形方式更改标记尺寸?如果我将size
参数设置为任何数字,它会使其大小相同。如果我将它映射到我的数据中的一个变量,那么标记将会很小,以便真正能够区分第一位的差异。理想情况下,我想通过映射到变量来增加基本大小并保持比例方面。设置标记尺寸
重复的例子:
library(data.table)
library(plotly)
library(dplyr)
sample <- data.table(Region=c("Illinois","Illinois","California","California","Texas","Texas"),
code=c("IL","IL","CA","CA","TX","TX"),
Group=c("A","B"),
Value=rnorm(6, mean=100, sd=6))
sample[Region=="Illinois", c('lat', 'long') := list(40.3363, -89.0022)]
sample[Region=="California", c('lat', 'long') := list(36.17, -119.7462)]
sample[Region=="Texas", c('lat', 'long') := list(31.106, -97.6475)]
x <- list(
scope = 'usa',
projection = list(type = 'albers usa'),
showlakes = F,
lakecolor = toRGB('lightblue')
)
sample %>%
plot_geo(
locationmode='USA-states'
) %>%
add_markers(
y=~lat, x=~long, hoverinfo="text",
color=~Group,
text=~Group, size=~Value
) %>%
layout(
title='plotly marker map',
geo=x
)
答
使用size
的问题是,你从字面上指定一个确切的尺寸为所有的标记。
OTOH您可以使用sizes
参数按比例缩放基本大小和像素之间的映射。
例如:
library(data.table)
library(plotly)
library(dplyr)
sample <- data.table(Region=c("Illinois","Illinois","California","California","Texas","Texas"),
code=c("IL","IL","CA","CA","TX","TX"),
Group=c("A","B"),
Value=rnorm(6, mean=100, sd=6))
sample[Region=="Illinois", c('lat', 'long') := list(40.3363, -89.0022)]
sample[Region=="California", c('lat', 'long') := list(36.17, -119.7462)]
sample[Region=="Texas", c('lat', 'long') := list(31.106, -97.6475)]
x <- list(
scope = 'usa',
projection = list(type = 'albers usa'),
showlakes = F,
lakecolor = toRGB('lightblue')
)
sample %>%
plot_geo(
locationmode='USA-states'
) %>%
add_markers(
sizes=c(1000,100),
y=~lat, x=~long, hoverinfo="text",
color=~Group,
text=~Group, size=~Value
) %>%
layout(
title='plotly marker map',
geo=x
)
这是地图是什么样子之前的换算(即使用你的问题的代码):
这是什么地图看起来像是之后的缩放比例(即上图中的代码):
当然,我非常随意地选择了具体的值,你可能需要调整它。我也认为为A
和B
指定不同的颜色可能会有所帮助。
这里就是我使用的颜色,以帮助提高A
和B
之间的视觉差异,同时保持缩放比例为例:
sample %>%
plot_geo(
locationmode='USA-states'
) %>%
add_markers(
sizes=c(1000,100),
y=~lat, x=~long, hoverinfo="text",
color=~Group,
colors = c("blue", "yellow"),
text=~Group,
size=~Value
) %>%
layout(
title='plotly marker map',
geo=x
)
另一个变化:
和另一个:
答
最简单的,而且很可能规范的方法是使用marker.sizeref
属性。你里面marker=list(...)
把这个包像这样
plot_geo(sample, locationmode='USA-states') %>%
add_markers(y=~lat, x=~long, hoverinfo="text",
color=~Group, text=~Group, size=~Value,
marker=list(sizeref=0.1, sizemode="area")) %>%
layout(title='plotly marker map', geo=x)
需要注意的是,小sizeref
,标记越大。 E.g与sizeref=0.02
我们得到
@哈克-R嗯,对我的作品,而'plot_geo'是在plotly包。可能是你的版本问题? – moman822
@ Hack-R版本4.5。2 – moman822
我想使地图上的点更大(如果这是什么不是你的意思是'按钮') – moman822