如果在给出相同问题的散点图时给出此处的答案,是否可以绘制一条基于y值的颜色的线?
示例数据
x = 1:11
y = abs(6 - x)
plot(1:22,c(y,y), col = ifelse(c(y,y) < 2.5, 2, 3), pch = 16)
Run Code Online (Sandbox Code Playgroud)
但是,尝试
plot(1:22,c(y,y), col = ifelse(c(y,y) < 2.5, 2, 3), type = "l")
Run Code Online (Sandbox Code Playgroud)
给
或做y<2.5一些
而不是我追求的解决方案,这是
有没有简单的方法可以做到这一点?这只是一个简单的案例,我无法将每个部分手动添加到我的实际数据中。谢谢!
我想要一个条形图,如果数字为正,则将条形颜色为红色,如果数字为负,则将条形颜色为绿色。我希望它采用 ggplot“模板”的形式,我可以在其中更改基础数据,并且它仍然可以执行我想要的操作。目前,我的代码仅在所有数字均为正数或数据中存在正数和负数时才有效。
版本 1(不起作用)。然而,所有条形都应该是绿色的,因为没有正数,所以fill = change < 0不起作用,它只需要第一种颜色,在这种情况下是红色。
data1 <- data.frame(group = as.factor(c("all", "men", "women")),
change = as.numeric(c(-10000, -6000, -4000)))
ggplot(data1,
aes(x = group,
y = change,
fill = change < 0)) +
geom_bar(stat = "identity") +
scale_fill_manual(guide = FALSE,
values = c("red", "green"))
Run Code Online (Sandbox Code Playgroud)
版本 2(按预期工作)。
data2 <- data.frame(group = as.factor(c("all", "men", "women")),
change = as.numeric(c(2000, 6000, -4000)))
ggplot(data2,
aes(x = group,
y = change,
fill = change < 0)) +
geom_bar(stat = "identity") +
scale_fill_manual(guide = FALSE, …Run Code Online (Sandbox Code Playgroud)