2017-10-08 29 views
0

私は多くのプロットを作成しており、geom_text呼び出しごとにcolor引数を渡さなくても、データラベルのデフォルトの色を設定したいと考えています。私はプロットのタイトルと軸についてはできますが、データラベルではできません。R ggplot2でデフォルトの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") 
+2

可能な解決策は、http://ggplot2.tidyverse.org/reference/update_defaults.htmlにあります。 'update_geom_defaults(" text "、list(color =" red ")); ggplot(mtcars、aes(mpg、wt))+ geom_text(label = hp) ' – bdemarest

+0

@bdemarestポストは答えですか? – dww

+0

@bdemarestこれは私が探している解決策です。回答として投稿する必要があります –

答えて

2

は残念ながら、私は、テーマの要素のみ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") 

注:あなたは本当にあなたが繰り返しの引数を指定するの疲れるある点までと同様のプロットのトンを作成している場合は、プログラムの完全なグラフオブジェクトを作成する関数を書いて検討することができます。それはあなたの特定のユースケースに依存します。

関連する問題