Как добавить текст в лесные участки - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь создать лесной участок, используя этот кадр данных с тремя столбцами: studies - это название исследования, n - это количество выборок в исследовании, а accuracy - это% точности:

> dput(for.meta)
structure(list(studies = structure(c(11L, 5L, 13L, 3L, 14L, 12L, 
4L, 6L, 8L, 2L, 10L, 1L, 7L, 9L), .Label = c("EMTAB292", "GSE10327", 
"GSE12992", "GSE21140", "GSE30074", "GSE37382", "GSE41842", "GSE49243", 
"GSE50161", "GSE50765", "GSE62803", "GSE67850", "GSE73038", "GSE74195"
), class = "factor"), n = c(8L, 30L, 46L, 40L, 30L, 22L, 103L, 
50L, 58L, 62L, 12L, 19L, 19L, 24L), accuracy = c(85.71, 93.3, 
93.3, 94.9, 95, 95.5, 96.8, 97.8, 98.3, 98.3, 100, 100, 100, 
100), label = c("GSE62803 (n = 8)", "GSE30074 (n = 30)", "GSE73038 (n = 46)", 
"GSE12992 (n = 40)", "GSE74195 (n = 30)", "GSE67850 (n = 22)", 
"GSE21140 (n = 103)", "GSE37382 (n = 50)", "GSE49243 (n = 58)", 
"GSE10327 (n = 62)", "GSE50765 (n = 12)", "EMTAB292 (n = 19)", 
"GSE41842 (n = 19)", "GSE50161 (n = 24)")), row.names = c("GSE62803", 
"GSE30074", "GSE73038", "GSE12992", "GSE74195", "GSE67850", "GSE21140", 
"GSE37382", "GSE49243", "GSE10327", "GSE50765", "EMTAB292", "GSE41842", 
"GSE50161"), class = "data.frame")

Вот код для создания участка леса:

library(metafor)
colfunc <- colorRampPalette(c("red", "darkred"))
metafor::forest(for.meta$accuracy, for.meta$n, 
                slab = for.meta$label, cex=.9,
                xlab = "Accuracy (%)", col = colfunc(14), 
                main = "Accuracy across 14 datasets\n(Median = 97.3%)", top = 3, refline = 97)
text(x = 70, y = 50, "Dataset", pos=4)
text(x = 90, y = 75, "Accuracy", pos = 3, font = 4)

График создан, но текст для столбца набора данных и столбца Точность не отображается (метка сверху).

enter image description here

1 Ответ

1 голос
/ 21 октября 2019

Позиции оси y для добавляемого вами текста слишком велики. Это должно сработать:

metafor::forest(for.meta$accuracy, for.meta$n, 
                slab = for.meta$label, cex=.9,
                xlab = "Accuracy (%)",
                main = "Accuracy across 14 datasets\n(Median = 97.3%)", top = 3,
                refline = 97,
                xlim = c(30, 165))

text(x =  30, y = 16, "Dataset",  pos=4)
text(x = 165, y = 16, "Accuracy", pos = 2, font = 4)

Обратите внимание, что я установил ограничения по оси x на графике леса, что упрощает установку тех же ограничений для добавляемого текста. Кроме того, мне пришлось удалить col=colfunc(14), чтобы запустить это. Не уверен, откуда эта функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...