web-dev-qa-db-ja.com

軸ラベルとは無関係にggplot2でグラフのサイズを指定する方法

データフレームがあり、プロットを作成したいとします

df <- melt(iris)

p <- ggplot(data = df, aes(x = Species, y = value)) + 
       geom_boxplot() + theme(aspect.ratio = 1)

次に、ggsave()を使用してこのプロットのPDFを保存します

ggsave(plot = p, width = 3, height = 3, dpi = 300, filename = "not squished axis.pdf")

enter image description here

問題は、プロット自体の次元を指定しますが、軸ラベルとは無関係に、以下で指定されたプロットが軸の絶対長に関して同じサイズと次元になるようにすることです。

q <- ggplot(data = df, aes(x = Species, y = (value)*10000000)) +
       geom_boxplot() + theme(aspect.ratio = 1)

ggsave(plot = q, width = 3, height = 3, dpi = 300, filename = "squished axis.pdf")

enter image description here

これを簡単に行う方法はありますか?

これは、軸の長さの点で私が望むものに近いプロットの例です:

enter image description here

唯一の問題は、アスペクト比を変更することで、y軸を押しつぶしてx軸の長さをより均一にすることです...

3
John Gagnon

少し遅いと思いますが、ラベルのncharを修正することでこの問題を解決しました。それは非常に一般的な解決策ではありません、私は知っています。 30(またはそれ以上)の分割プロットが必要でした。別個の基礎となるグロブにある観測数。したがって、x軸のサイズを固定する必要があります。これが誰かを助けることを願っています

0
marina