【发布时间】:2016-06-20 13:05:36
【问题描述】:
我在将颜色分配给 plotly 中的变量时遇到了一些问题。我希望将 TRUE 分配给红色,将 FALSE 分配给黑色。似乎发生的情况是第一个实例被分配给红色,所以如果我改变顺序,颜色也会改变。
x <- c(1, 2, 3)
y <- c(3, 5, -1)
z <- c(TRUE, FALSE, TRUE)
data <- data_frame(x, y, z)
plot_ly(data, x = x, y = y, type = "bar", color = z, colors = c("red", "black"))
然后我得到以下信息: Plot 1
但是当我重新排序变量时,我得到以下信息:
data %>% arrange(desc(y)) %>%
plot_ly (x = x, y = y, type = "bar", color = z, colors = c("red", "black"))
如您所见,TRUE 和 FALSE 的颜色发生了变化。有没有办法将每种颜色分配给每个变量,例如 TRUE = "red", FALSE = "black"?
【问题讨论】:
-
这个怎么样?
data[data$z == TRUE]$col <- "red"data[data$z == FALSE]$col <- "black"和colors = data$col在你的绘图函数中 -
在这种情况下应该是什么颜色?现在应该是 z 还是 col ?它似乎不工作任何一种方式...
-
或者你可以使用
data$color <- ifelse(z, "red", "black")来获得一个包含颜色的列,然后你可以使用 data$color 代替 c("red","black") -
当我执行 data$col[data$z == TRUE] 并按 y 排列数据时它起作用(由于某种原因没有排列它不起作用)。谢谢!!