我想在基础R中的折线图上更改特定数据点的符号。
以下是我的情节示例:
month<-c("2010-08-01", "2010-09-01", "2010-10-01", "2010-12-01", "2011-01-01", "2011-02-01",
"2011-03-01", "2011-04-01", "2011-05-01", "2011-06-01", "2011-07-01", "2011-09-01",
"2011-11-01", "2012-01-01", "2012-02-01", "2012-03-01", "2012-05-01", "2012-07-01",
"2012-08-01")
prevalence<-c(10,7.5,5.2,3.5,6.4,2.7,5.8,13.2,4.3,4.7,6.4,4.4,5.2,3.3,1.0,3.1,9.9,33.3,1.0)
df<-data.frame(month, prevalence)
df$month<-as.Date(df$month)
plot(df$month, df$prevalence,lwd = 1.8, ylim=c(0,40),pch=16, bty='n',
ylab="Prevalence (%)", xlab="Month",col='black',cex=1,cex.lab=1.0,cex.axis=1.0)
len = .07
axis(side = 1, at = df$month, labels=F, tck=-0.015)
axis(side=2, at=c(0,10,20,30,40,50), labels=c("", "", "", "", "", ""), tck=-0.015)
lines(df$month, df$prevalence, col='black', lwd=1.8)
图表生成:
第二个最后一个点的y值远高于其他点,我想将该点更改为一个空心圆,表示该数据点只有3个样本。由于我将这些线图中的几个叠加在一个图中,因此试图用另一种方式指示这种方式就像手动覆盖图形上的符号一样。
答案 0 :(得分:2)
您可以为每个数据点指定单独的符号。只需为plot
的pch-option提供数组而不是单个值symbol <- rep(16,nrow(df))
symbol[df$prevalence >30] <- 21
plot(df$month, df$prevalence,lwd = 1.8, ylim=c(0,40),pch=symbol, bty='n',
ylab="Prevalence (%)", xlab="Month",col='black',cex=1,cex.lab=1.0,cex.axis=1.0)