我使用ggplot2
創建了混合密度圖,我想在圖中添加彙總信息,即每個密度的平均值和代表某種真實平均值的1值。R - 在ggplot2中定製圖例以添加geom_vline()組件
這裏是一個模擬的例子,來自@Hernando Casas。
set.seed(1234)
data <- data.frame(value = rnorm(n = 10000, mean =50, sd = 20),
type = sample(letters[1:2], size = 10000, replace = TRUE))
data$value[data$type == "b"] <- data$value[data$type == "b"] +
rnorm(sum(data$type == "b"), mean = 55)
library(ggplot2)
gp <- ggplot(data=data, aes_string(x="value"))
gp <- gp + geom_density(aes_string(fill="type"), alpha=0.3)
添加的摘要信息作爲垂直線之後。劇情是這樣的
vlines <- data.frame(value = c(mean(data$value[data$type == "a"]), mean(data$value[data$type == "b"])),Mean = c("A", "B"))
gp2 <- gp + geom_vline(data=vlines,
aes(xintercept=value, colour=Mean),
size=1.05, linetype="dashed", show_guide=TRUE)
gp3 <- gp2+geom_vline(xintercept=(50+55+50)/2,
size=1.05)
雖然情節是我想要什麼,我想這黑色實線添加入禁區「中庸」與一個名稱下的傳奇說「總體」。這是我陷入困境的地方,我根本不知道如何定製傳奇,因爲我沒有太多的經驗ggplot2
。
我發現了一些例子和修改我的代碼
gp <- ggplot(data=data, aes_string(x="value"))
gp <- gp + geom_density(aes_string(fill="type"), alpha=0.3)
vlines <- data.frame(value = c(mean(data$value[data$type == "a"]),
mean(data$value[data$type == "b"]),
(50+55+50)/2),
Mean = c("A", "B", "Overall"))
gp2 <- gp + geom_vline(data=vlines,
aes(xintercept=value, colour=Mean),
size=1.05, linetype="dashed", show_guide=TRUE)
現在我有一個傳說,但我想改變線條的顏色是一樣的密度,更重要的是我需要將「整體」行改爲純黑色,我又遇到了定製問題。
我真的很感激任何人的幫助。謝謝
要獲得與填充完全相同的顏色,可以使用'scale_color_manual(values = c(「#F8766D」,「#00BFC4」,「black」))''。資料來源:gg_color_hue函數來自http://stackoverflow.com/a/8197703/5020008 – Heroka