如果你运行下面的代码,你会得到一个折线图。如何将x = 2处的点颜色更改为红色并增加其大小?
在这种情况下,在图表上(.6)的点,其中x = 2将突出显示为红色并变大。
这是我的代码:
library("ggplot2")
data<-data.frame(time= c(1,2,3), value = c(.4,.6,.7))
ggplot(data, aes( x = time, y=value) ) + geom_line() + geom_point(shape = 7,size = 1)
谢谢!
答案 0 :(得分:0)
如果你的数据集很小,你可以这样做:
> library("ggplot2")
> data<-data.frame(time= c(1,2,3), value = c(.4,.6,.7),point_size=c(1,10,1),cols=c('black','red','black'))
> ggplot(data, aes( x = time, y=value) ) + geom_line() + geom_point(shape = 7,size = data$point_size, colour=data$cols)
使:
另外,我不建议您调用数据框data
答案 1 :(得分:0)
除了@ Harpal的解决方案之外,您还可以在数据框中再添加两列,其中根据特定条件指定了pointsize和-color:
df <- data.frame(time= c(1,2,3), value = c(.4,.6,.7))
# specify condition and pointsize here
df$pointsize <- ifelse(df$value==0.6, 5, 1)
# specify condition and pointcolour here
df$pointcol <- ifelse(df$value==0.6, "red", "black")
ggplot(df, aes(x=time, y=value)) + geom_line() + geom_point(shape=7, size=df$pointsize, colour=df$pointcol)
您可以更改ifelse(df$value==0.6, 5, 1)
以符合您喜欢的任何条件,或者使用更复杂的方法来指定更多条件:
df <- data.frame(time= c(1,2,3), value = c(.4,.6,.7))
df$pointsize[which(df$value<0.6)] <- 1
df$pointsize[which(df$value>0.6)] <- 8
df$pointsize[which(df$value==0.6)] <- 5
df$pointcol[which(df$value<0.6)] <- "black"
df$pointcol[which(df$value>0.6)] <- "green"
df$pointcol[which(df$value==0.6)] <- "red"
ggplot(df, aes(x=time, y=value)) + geom_line() + geom_point(shape=7, size=df$pointsize, colour=df$pointcol)