[英]ggplot2: How to have a different color of geom_vline()
我的情節中有五(5)個geom_vline(),我希望它們有不同的顏色。 有沒有辦法做到這一點?
這是我的代碼,
library(ggplot2)
x <- seq(-7, 8, length = 90)
tvalues <- dt(x,15)
qplot(x, tvalues) + geom_polygon(fill = "purple", colour = "purple", alpha = 0.5) +
geom_point(fill = "purple", colour = "purple", alpha = 0.2, pch = 21) +
geom_vline(xintercept = c(a <- c(-2.27685371, 0.01661155,
0.33598194, 1.92426022), mean(a)), linetype = "dashed", colour = "red") + theme_bw() + xlab(bquote(bold('Average Tensile Strength (lb/in'^'2'*')'))) +
ylab(expression(bold(P(x)))) +
opts(title = expression(bold("Student t Distribution")), plot.title = theme_text(size = 20, colour = "darkblue"),
panel.border = theme_rect(size = 2, colour = "red"))
這是輸出,
注意圖中的五條垂直線,我希望每條線都有不同的顏色,
我試過這個
library(colorRamps)
geom_vline(xintercept = c(a <- c(-2.27685371, 0.01661155,
0.33598194, 1.92426022), mean(a)), linetype = "dashed", colour = matlab.like(5))
但沒有工作,另一種嘗試
geom_vline(xintercept = c(a <- c(-2.27685371, 0.01661155,
0.33598194, 1.92426022), mean(a)), linetype = "dashed", colour = c("red","blue","green","yellow","orange"))
並且仍然不成功。
提前致謝!
因此,你有點遺漏了ggplot2背后的基本思想,即你總是將所有數據放入data.frame
並且映射的每個美學都對應於數據框中的變量。
您可以獲得5條垂直線,每條線都有不同的顏色,並且對geom_vline
進行了五次單獨的調用,但是錯過了整個包的重點。 相反,您創建一個數據框:
a <- c(-2.27685371,0.01661155,0.33598194,1.92426022)
vlines <- data.frame(xint = c(a,mean(a)),grp = letters[1:5])
我已經明確創建了一個分組變量grp
來映射到colour
。 然后我們添加圖層並使用aes
將美學映射到這些變量:
qplot(x, tvalues) +
geom_polygon(fill = "purple", colour = "purple", alpha = 0.5) +
geom_point(fill = "purple", colour = "purple", alpha = 0.2, pch = 21) +
geom_vline(data = vlines,aes(xintercept = xint,colour = grp), linetype = "dashed") +
theme_bw() +
xlab(bquote(bold('Average Tensile Strength (lb/in'^'2'*')'))) +
ylab(expression(bold(P(x)))) +
opts(title = expression(bold("Student t Distribution")),
plot.title = theme_text(size = 20, colour = "darkblue"),
panel.border = theme_rect(size = 2, colour = "red"))
(顏色很難區分,因為它們是虛線,其中兩個幾乎在彼此的頂部。)
如果從過渡離開,你會得到更多的出GGPLOT2的qplot
對ggplot()
並開始把你的數據轉換成數據幀,而不是載體。
如果你只想放一行,添加下面的geom
會在x=1
處以紅色和虛線添加一條垂直線。
+ geom_vline(aes(xintercept=1), colour="#BB0000", linetype="dashed")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.