Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R闪亮ggvis添加_图例问题_R_Shiny_Ggvis - Fatal编程技术网

R闪亮ggvis添加_图例问题

R闪亮ggvis添加_图例问题,r,shiny,ggvis,R,Shiny,Ggvis,我正在制作一个交互式闪亮的绘图,用户可以在每个轴上选择他们想要的内容,以及为点着色的属性 为了简单起见,我在这里提供了一个虚拟数据集: test_df <-tibble(test_x = sample(c(1:100), 10), test_y = sample(c(1:100), 10), variable = rep(c("A", "B"), 5), colour = rep(c("o

我正在制作一个交互式闪亮的绘图,用户可以在每个轴上选择他们想要的内容,以及为点着色的属性

为了简单起见,我在这里提供了一个虚拟数据集:

test_df <-tibble(test_x = sample(c(1:100), 10),
                 test_y = sample(c(1:100), 10),
                 variable = rep(c("A", "B"), 5),
                 colour = rep(c("orange", "green"), 5))
但是,当我尝试使用add_legend添加图例时,生成的绘图是空白的。它既不在这个伪代码中也不在实际示例中生成错误消息。使用的代码是:

test_df %>%
  ggvis(x = ~test_x, y = ~test_y, fill:= ~colour) %>%
  layer_points() %>%
  add_legend(scales = "fill", title = "blah") 
我试图使用以下问题中提供的信息以及帮助信息,但没有成功

我觉得我错过了一些非常明显的东西,所以任何建议或指导都将不胜感激。我也知道闪亮的版本需要更复杂的代码,但我觉得如果我能让它首先在本地工作,这将帮助我找到下一步

注意:我需要使用ggvis来启用鼠标悬停在工具提示上。我知道这可以简单地使用其他图形包来完成,但我需要ggvis的答案


谢谢大家!

我不明白为什么你的代码不起作用。也许这只是因为它不应该这样使用。我找到的唯一解决办法是下面的一个,但我很确定可以做得更好

test_df %>%
  ggvis(x = ~test_x, y = ~test_y, fill = ~colour) %>%
  add_legend(scales = "fill", title = "blah") %>%
  scale_ordinal("fill", range = unique(test_df$colour)) %>%
  layer_points()

如果您输入了错别字,应该是fill=~ color。否则对我来说是有效的。@kluu谢谢你的回复。但是,我需要在该列中列出这些点的特定颜色,因此是冒号。没有冒号,我得到了错误的颜色分配给点。哦,糟糕,甚至没有检查输出的颜色。@kluu没问题!我花了一段时间才弄明白这一点:还有别的想法吗?谢谢@kluu!在某种程度上,知道我并没有错过一些显而易见的东西,这让我稍微松了一口气!这个解决方案适用于虚拟数据集,所以我将看看它是否适用于更复杂的示例。再次感谢!好的,这个解决方案在某种程度上有效;这并没有破坏剧情。然而,在我的真实例子中,我只看到了标题的图例,没有看到任何内容。因此,这是向前迈出的一步!我认为现在的问题是由于反应物等是如何相互作用的。但是谢谢你的帮助!因此,在我实际的闪亮用例中,要完成这项工作,最后一个难题是在scale_ordinal函数中包含等效的domain=uniquetest_df$变量。
test_df %>%
  ggvis(x = ~test_x, y = ~test_y, fill = ~colour) %>%
  add_legend(scales = "fill", title = "blah") %>%
  scale_ordinal("fill", range = unique(test_df$colour)) %>%
  layer_points()