簡體   English   中英

如何在R ggplot2中設置默認的geom_text顏色?

[英]How to set the default geom_text color in R ggplot2?

我正在繪制許多圖,並希望為數據標簽設置默認顏色,而不必將color參數傳遞給每個geom_text調用。 我可以為繪圖標題和坐標軸執行此操作,但不能為數據標簽執行此操作。

# Example of how to set default color for other text elements
library(ggplot2)
theme_set(theme_bw() + theme(text = element_text(color = "red"),
                             axis.text = element_text(color = "red")))
ggplot(mtcars, aes(x = cyl, label = ..count..)) +
    geom_bar() +
    geom_text(stat = "count") +
    labs(title = "title")

不幸的是,我相信主題元素僅適用於繪圖中與數據無關的元素,這意味着主題不覆蓋geom_text的文本。 默認顏色"black"geom_text的源中進行了硬編碼,據我所知,沒有簡單的方法可以覆蓋它。 (不過,如果有人在乎糾正我,那就太好了!)

但是,一種可能有助於簡化操作的簡單解決方案是創建一個包裝函數,該函數將返回geom_text以及您將一遍又一遍傳遞的所有默認值。 例如:

geom_text_wrap <- function(col="red", ...) {
  geom_text(col=col, ...)
}

可以直接代替geom_text使用,並且默認情況下會創建紅色文本。 因此,以下內容將創建紅色文本,而無需您在繪圖創建中直接指定它。

ggplot(mtcars, aes(x = cyl, label = ..count..)) +
    geom_bar() +
    geom_text_wrap(stat="count") +
    labs(title = "title")

注意:如果確實要創建大量類似的圖,以至於您很想指定重復的參數,則可以考慮編寫一個函數,該函數將以編程方式創建完整的圖形對象。 那將取決於您的特定用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM