【发布时间】:2016-08-18 19:58:55
【问题描述】:
编辑:示例代码更新为更复杂的示例
我有一个数据框,其中包含 (x, y) 值和每对的名称,我将其绘制在 ggvis 散点图中。 SO 用户已经将我指向这篇文章 (How do I label plot tick marks using ggvis),我更新了我的代码以反映我在那里看到的内容,方法是使用 factor() 创建自定义 y 轴标签列表ylabels_,该列表被馈送到values = 下add_axis() 声明。这是新代码:
library(stringi)
require(ggvis)
set.seed(13)
df <- data.frame(x = 1:15,
y = c(rep.int(1, 15),
rep.int(4, 15),
rep.int(7, 15)))
ylabels_ <- factor(c(1,4,7), labels = stri_rand_strings(3, 7))
df %>%
ggvis(~x, ~y) %>%
add_axis("y", values = ylabels_)
我的轴标签仍然返回 NaN 而不是因子。我错过了什么吗?
解决方案编辑:这是我终于开始工作的代码。请注意,我将 x 值更改为交错排列,以便区分三行。
library(stringi)
require(ggvis)
set.seed(13)
df <- data.frame(x = c(seq(1, length.out = 15, by = 3),
seq(2, length.out = 15, by = 3),
seq(3, length.out = 15, by = 3)),
y = factor(c(rep.int(1, 15),
rep.int(4, 15),
rep.int(7, 15)), labels = c("one", "four", "seven"),
ordered = T))
df %>%
ggvis(~x, ~y) %>%
layer_points() %>%
scale_ordinal("y", domain = c("seven", "four", "one")
我不明白为什么在domain = 部分我必须颠倒因素的顺序才能以正确的顺序显示。如果有人对此有任何见解,那将非常有帮助!
【问题讨论】: