我很难在R图上打印文字。
我有3个图,对于每个图我想添加一个标签(p值)。 然后,对于允许我绘制曲线的5个值中的每一个,在图形上打印该值。
实际上我想让我的身材看起来如下图(见下文)。
使用我的以下脚本。
有任何帮助吗? 提前致谢, 最好,
df <- structure(list(lowerA = c(4.1, 4.6, 5.5, 4.7, 5), Group1 = c(4.8,5.4, 6.4, 5.5, 5.7),
upperA = c(5.7, 6.3, 7.3, 6.3, 6.6), lowerB = c(6.2, 7.1, 8.7, 7.4, 8.2),
Group2 = c(7.3, 8.3, 10, 8.6, 9.5), upperB = c(8.6, 9.6, 11.4, 9.9, 10.8),
lowerC = c(18.3, 19.5, 24.3, 22.9, 25.5), Group3 = c(21.4, 22.5, 27.6, 26.3, 29),
upperC = c(24.7, 25.8, 31, 29.8, 32.7)),
.Names = c("lowerA", "Group1", "upperA", "lowerB","Group2", "upperB", "lowerC", "Group3", "upperC"),
row.names = c("year1", "year2", "year3", "year4", "year5"), class = c("tbl_df", "tbl", "data.frame"))
class(df)
df <- as.data.frame(df)
#### Data Base
colnames(df) <- gsub("A","1",colnames(df))
colnames(df) <- gsub("B","2",colnames(df))
colnames(df) <- gsub("C","3",colnames(df))
colors <- c("#000099", "#CC0000", "#808080")
labels <- c("red line", "black line","black line")
#########
lablist<-as.vector(c("2010","2011","2012","2013","2014"))
axis(1, labels = FALSE)
#########
library(scales)
plot(df$Group1, type = "n",ylim = c(0,40),frame.plot = FALSE, main = "", xlab = "", ylab = "Survival at hospital discharge (%)",labels = FALSE)
axis(1, at=1:5, labels=c("2011-2012","2012-2013","2013-2014","2014-2015","2015-2016"))
axis(2, at=c(0, 10, 20, 30, 40), labels=c("0","10","20","30","40"))
for(i in 1:3){
lines(df[,paste0("Group",i)], col = colors[i])
polygon(x = c(1:nrow(df),nrow(df):1),
y = c(df[,paste0("lower",i)],rev(df[,paste0("upper",i)])),
col = alpha(c("white","white","white"), 0.1),
# si tu veux garder les couleur des IC le long des courbes mets commande si après:
# col = alpha(colors[i], 0.1),
border = NA)
arrows(x0 = c(1:nrow(df)),
x1 = c(1:nrow(df)),
y0 = df[,paste0("lower",i)],
y1 = df[,paste0("upper",i)],
col = colors[i],
angle = 90,
length = 0.05,
code = 3)
}
答案 0 :(得分:1)
以下是获取点标签的示例。我将保留P值标签作为读者的练习。
let webView = WKWebView(frame: view.bounds, configuration: webConfiguration)
我在plot(df$Group1, type = "n",ylim = c(0,40),frame.plot = FALSE, main = "", xlab = "", ylab = "Survival at hospital discharge (%)", axes = F)
axis(1, at=1:5, labels=c("2011-2012","2012-2013","2013-2014","2014-2015","2015-2016"))
axis(2, at=c(0, 10, 20, 30, 40))
for(i in 1:3){
lines(df[,paste0("Group",i)], col = colors[i])
arrows(x0 = c(1:nrow(df)),
x1 = c(1:nrow(df)),
y0 = df[,paste0("lower",i)],
y1 = df[,paste0("upper",i)],
col = colors[i],
angle = 90,
length = 0.05,
code = 3)
points(df[,paste0("Group",i)], col = "white", pch = 15, cex = 2)
text(df[,paste0("Group",i)], labels = df[,paste0("Group",i)], col = colors[i], cex = 0.7)
}
中设置了axes = F
而不是labels = F
来摆脱警告,我删除了plot()
代码,因为它没有做任何事情。您可能希望进一步调整文本的polygon
和点,以使其大小合适。