我正在寻找根据列的值绘制点的方法,因此有些点会比其他点大。我可以在ggvis中进行,如下所示,但尺寸之间的差异不够大。
server <- function(input, output) {
sub_df <- reactive({df[df$Year == input$year & df$Region %in% input$regions, ]})
hover <- function(x) {
if(is.null(x)) return(NULL)
row <- df[df$Life == x$Life & df$Fertility == x$Fertility & !is.na(df$Life) & !is.na(df$Fertility), ]
paste0(row$Country)
}
sub_df %>%
ggvis(x = ~Life, y = ~Fertility, fill = ~factor(Region), size = ~Population) %>%
layer_points() %>%
add_axis("x", title = "Life Expectancy") %>%
add_axis("y", title = "Fertility Rate") %>%
add_legend("fill", title="Region", properties = legend_props(legend = list(y = 150))) %>%
add_legend("size", title="Population", properties = legend_props(legend = list(y = 50))) %>%
add_tooltip(hover, "hover") %>%
scale_numeric("x", domain = c(limits$lifemin, limits$lifemax), nice = F) %>%
scale_numeric("y", domain = c(limits$fertilitymin, limits$fertilitymax), nice = F) %>%
set_options(duration=0) %>%
bind_shiny("ggvis", "ggvis_ui")
}
我的情节如下:
数据可在以下位置找到: http://data.worldbank.org/indicator/SP.POP.1564.TO.ZS?view=map
感谢您的帮助!
答案 0 :(得分:0)
scale_numeric
函数控制最大和最小尺寸
mtcars %>%
ggvis(~wt,~mpg,size=~mpg) %>%
scale_numeric('size',domain = c(10,40),range=c(100,1000)) %>%
layer_points()
range
设置最小和最大尺寸,domain
设置数据范围。默认情况下,您不需要
关于你可重复的例子的一些注意事项:我作为一个试图帮助的人,不能运行你的代码并修改它因为1.它被提供为闪亮应用程序的一半(仅服务器代码)和2.数据不是&# 39;易于访问。您的问题是您无法设置数据范围。如果第三方能够以最小的形式复制您的问题,则第三方更容易帮助您