2
我想更改一組ggplots的點和線的默認顏色。你如何覆蓋默認的ggplot的點和線的美學?
當然,我可以定義一個顏色,然後顯式調用它在每一個情節:
my_colour <- "firebrick"
ggplot(cars, aes(speed, dist)) + geom_line(colour = my_colour)
我想偷懶,避免這種情況,每次打字。
應該有一個主題元素,我可以更新來改變這一點。我認爲這可能工作:
theme_update(
line = element_line(colour = "firebrick", size = 2, linetype = 1, lineend = "butt")
)
但它沒有影響的情節線,並沒有一個點的等價物。我在help for themes中看不到任何其他可能的元素。
我可以通過破解內部GeomPath
變量來強制覆蓋事物,但這是不好的形式,因爲我們不應該接觸內部對象。
gp <- ggplot2:::GeomPath
gp$default_aes <- function(.)
{
aes(colour = "firebrick", size = 0.5, linetype = 1, alpha = NA)
}
assignInNamespace("GeomPath", gp, "ggplot2")
什麼是正確的方式來改變點,線和其他geoms的默認美學?
+1感謝,學到了一些東西 – BrodieG 2014-08-28 13:56:16
@BrodieG我也是!如何寫下你的問題可以使你找到答案是令人驚訝的。 – 2014-08-28 14:01:51