Используя следующие данные, я пытаюсь создать график для презентации:Refining ggplot R код так аннотированный прямоугольник появляется за сюжетные
name = c("Phil", "Ian", "Leslie", "Darla", "Silvia", "Ron", "Emily", "Jack")
score = c(73.8, 73.5, 70.3, 68.9, 65.3, 61.4, 55.2, 54.3)
tx = c(0,0,1,0,0,0,0,0)
test1 <- data.frame(name, score, tx)
График предназначен для отображения каждой точки, как большой круг с значение точки графика внутри круга. Красная пунктирная линия представляет среднее значение построенных значений. Серый прямоугольник представляет собой стандартное отклонение вокруг среднего значения. Вот код, который я использую для создания графика:
library(ggplot2)
library(scales)
cols <- c("1" = "#ff7f0e", "0" = "#1f77b4")
txctrl <- c("1" = "#ffffff", "0" = "#000000")
ggplot(test1, aes(x=score, y=reorder(name,score))) +
geom_vline(aes(xintercept=mean(score)), colour="red", linetype="dashed", size=1) +
geom_point(aes(colour = factor(tx), size=0), show.legend = FALSE) +
annotate("rect", xmin=(mean(test1$score)-sd(test1$score)), xmax=(mean(test1$score)+sd(test1$score)), ymin=-Inf, ymax=Inf, alpha=0.5, fill="grey90") +
# geom_label(aes(label=score), colour=txctrl, fontface = "bold") +
scale_colour_manual(values=cols) +
scale_size(range=c(11,11)) +
xlim(52,78) +
geom_text(aes(label=score), hjust=0.5, vjust=0.5, size=5, label=round(test1$score, digits = 0)) +
labs(y='Name', x='Score') +
theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(color=NA),
axis.ticks = element_blank(),
axis.text.x = element_blank(),
axis.title.x = element_blank(),
axis.text.y = element_text(size=14),
axis.title.y = element_blank())
Вот результат приведенного выше кода:
Проблема Я бегу в прямоугольник исчезает цвет сюжетных точек. Как я могу заставить серый прямоугольник появляться за точками графика и знаками значений?
Работая слоем, мне удалось получить пунктирную среднюю линию, чтобы сидеть за пунктами графика. Когда я пытаюсь переместить аннотированный прямоугольник где-нибудь перед слоем, определяющим точки графика, я получаю сообщение об ошибке.
Порядок добавления слоев в ggplot - это порядок их рисования. Переместите аннотацию перед 'geom_point()'. Не добавляйте «бонусы» к вопросам. Задавайте один вопрос одновременно. – MrFlick
Это может быть полезно: http://stackoverflow.com/questions/20249653/insert-layer-underneath-existing-layers-in-ggplot2-object – jesstme