我在ggplot中有一个小节,我想在其中按其落入的范围为这些小节上色。我绘制了线条以显示我希望颜色变化的位置:0.4、0.5、0.6。我能找到的所有东西都会根据渐变进行着色。但是,我希望每个大于0.6的条都具有相同的绿色,小于0.4的每个条都具有相同的红色,等等。
attach(screen2D)
screen2D[order(screen2D[,2]),]
library(ggplot2)
ggplot(screen2D) +
geom_bar(aes(x = reorder(Target, -Median),
y = Median),
stat = "identity",
fill = "skyblue") +
geom_errorbar(aes(x = reorder(Target,
- Median),
ymin = Q1, ymax = Q3),
width = 0.25, colour = "black",
alpha = 0.9, size = 0.2) +
ggtitle("Title") +
xlab("X Label") +
ylab("Y Label") +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 90,
hjust = 1,
vjust = 0.25)) +
scale_y_continuous(expand = c(0,0),
limits = c(0,1)) +
geom_hline(yintercept = 0.40, linetype = "dashed",
color = "red") +
geom_hline(yintercept = 0.50, linetype = "dashed",
color = "red") +
geom_hline(yintercept = 0.60, linetype = "dashed",
color = "red")
Plot Output
fill
中的geom_bar
自变量需要长度1或数据集的相同长度,在这种情况下为102。有没有解决的办法?
我认为scale_fill_manual
与breaks
参数一起很有用,但这似乎只指定了一个单独的变量。
+ scale_fill_manual(
values = c("red", "yellow", "orange", "green"),
breaks = c(Median<0.4, 0.4<Median<0.5,
0.5<Median<0.6, 0.6<Median))
有没有一种方法可以不必手动将数据集分成4个并将它们分别添加在一起?