R 在ggplot中子集和高亮显示多个数据点

R 在ggplot中子集和高亮显示多个数据点,r,ggplot2,R,Ggplot2,我希望生成一个条形图,其中以不同方式突出显示多个数据点范围。下面的问题与我想做的很接近,只是我不想对数据点的一个范围进行子集设置和高亮显示,而是想对多个数据点范围进行子集设置,并生成一个不同颜色的条形图 我使用了这段代码(根据上面的问题改编)以红色突出显示10到30之间的数据子集 a <- 1:50 b <- rnorm(50) mydata <- data.frame(a=a,b=b) mydata[10:30,] ggplot(mydata,aes(x=a,y=b)) +

我希望生成一个条形图,其中以不同方式突出显示多个数据点范围。下面的问题与我想做的很接近,只是我不想对数据点的一个范围进行子集设置和高亮显示,而是想对多个数据点范围进行子集设置,并生成一个不同颜色的条形图

我使用了这段代码(根据上面的问题改编)以红色突出显示10到30之间的数据子集

a <- 1:50
b <- rnorm(50)
mydata <- data.frame(a=a,b=b)
mydata[10:30,]
ggplot(mydata,aes(x=a,y=b)) + geom_point(colour="blue") + geom_point(data=mydata[10:30,], aes(x=a, y=b), colour="red")

a我想,如果您希望数据的不同子集使用不同的颜色,那么这些子集代表不同的组。在
ggplot
中处理此问题的通常方法是创建一个组变量。在ggplot中,您可以轻松地为您的组设置颜色美学

library(ggplot2)
a <- 1:50
b <- rnorm(50)
mydata <- data.frame(a=a, b=b)
mydata$group        <- "a" 
mydata$group[1:9]   <- "b"
mydata$group[10:30] <- "c"
mydata$group[40:50] <- "d"

ggplot(mydata,aes(x=a,y=b, col = group)) + 
  geom_point() +
  scale_color_manual(values=c("blue", "green", "red", "cyan"), guide = FALSE) 

我想,如果您希望数据的不同子集使用不同的颜色,这些子集代表不同的组。在
ggplot
中处理此问题的通常方法是创建一个组变量。在ggplot中,您可以轻松地为您的组设置颜色美学

library(ggplot2)
a <- 1:50
b <- rnorm(50)
mydata <- data.frame(a=a, b=b)
mydata$group        <- "a" 
mydata$group[1:9]   <- "b"
mydata$group[10:30] <- "c"
mydata$group[40:50] <- "d"

ggplot(mydata,aes(x=a,y=b, col = group)) + 
  geom_point() +
  scale_color_manual(values=c("blue", "green", "red", "cyan"), guide = FALSE) 

正如@Alex提到的,您可以使用
变量来选择正确的颜色

使用
geom\u条(stat=“identity”)
并通过
fill
geom\u条更改
颜色


a正如@Alex提到的,您可以使用
group
变量来选择正确的颜色

使用
geom\u条(stat=“identity”)
并通过
fill
geom\u条更改
颜色

a
a <- 1:50
b <- rnorm(50)
mydata <- data.frame(a=a,b=b)
mydata$group        <- "a" 
mydata$group[1:9]   <- "green"
mydata$group[10:30] <- "red"
mydata$group[40:50] <- "cyan"

ggplot(mydata,aes(x=a,y=b, fill = group)) + 
geom_bar(stat = "identity") +
scale_fill_manual(values=c("a" = "black", "green" = "green", "red" = "red", "cyan" = "cyan"), guide = FALSE)