x軸にカテゴリ変数、y軸に数値変数を使用してグラフをプロットしています。
x軸の場合、データポイントが多数あるため、デフォルトのテキスト形式では、各目盛りのラベルが他のラベルと重なっています。(a)軸テキストのフォントサイズを変更し、(b)テキストが軸に垂直になるようにテキストの向きを変更するにはどうすればよいですか?
使用theme()
:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20),
axis.text.x = element_text(angle=90, hjust=1))
#vjust adjust the vertical justification of the labels, which is often useful
ここには、ggplotをフォーマットする方法に関する優れた情報がたくさんあります。を使用して変更できるパラメーター(基本的にはすべて)の完全なリストを表示できます?theme
。
の使用に関する同上@DrewSteen theme()
。軸のテキストとタイトルの一般的なテーマ属性は次のとおりです。
ggplot(mtcars, aes(x = factor(cyl), y = mpg))+
geom_point()+
theme(axis.text.x = element_text(color = "grey20", size = 20, angle = 90, hjust = .5, vjust = .5, face = "plain"),
axis.text.y = element_text(color = "grey20", size = 12, angle = 0, hjust = 1, vjust = 0, face = "plain"),
axis.title.x = element_text(color = "grey20", size = 12, angle = 0, hjust = .5, vjust = 0, face = "plain"),
axis.title.y = element_text(color = "grey20", size = 12, angle = 90, hjust = .5, vjust = .5, face = "plain"))
以前のソリューションに加えて、関数を使用して(11の場合)などのテーマに含まれるものに関連するフォントサイズを指定することもできます。base_size
theme_bw()
base_size
rel()
例えば:
ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
theme()を使用する:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20))
多くのプロットを作成する場合は、グローバルに設定するのが理にかなっています(関連部分は2行目で、3行を合わせたものが実際の例です)。
library('ggplot2')
theme_update(text = element_text(size=20))
ggplot(mpg, aes(displ, hwy, colour = class)) + geom_point()
重複するラベルを処理する別の方法は、を使用することguide = guide_axis(n.dodge = 2)
です。
library(dplyr)
library(tibble)
library(ggplot2)
dt <- mtcars %>% rownames_to_column("name") %>%
dplyr::filter(cyl == 4)
# Overlapping labels
ggplot(dt, aes(x = name, y = mpg)) + geom_point()
ggplot(dt, aes(x = name, y = mpg)) + geom_point() +
scale_x_discrete(guide = guide_axis(n.dodge = 2))
「fill」属性を使用すると、このような場合に役立ちます。を使用して軸からテキストを削除element_blank()
し、凡例付きのマルチカラー棒グラフを表示できます。修理工場での部品取り外し頻度を以下のようにプロットしています。
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
私の場合、棒グラフに多くの棒があり、読みやすく、互いに重ならないように十分に小さい適切なフォントサイズを見つけることができなかったため、このソリューションを選択しました。