ggplot2では、coord_fixed()
の座標系により、データのアスペクト比が所定の値に維持されます。したがって、パネルの形状が変化してデータの形状が維持されます。一方、coord_flip()
は、プロットの軸を入れ替えます。しかし、ggplot2のプロットは正確に1つの座標系を持たなければならないので、これらの関数を組み合わせることはできません。ggplot2:軸を反転してデータの縦横比を維持する
私の質問は:
は、x軸とy軸交換とデータの一定のアスペクト比と座標系で得られた、
coord_fixed()
とcoord_flip()
の行動を結合する方法が存在していますか?
これは人気の質問、しかし、一般的な答えが間違っています:一般的に提案答えはtheme(aspect.ratio = 1)
の代わりcoord_fixed()
と一緒coord_flip()
を使用することです
- How do I to fix aspect ratio and apply coord_flip in ggplot2?
- Flipping and maintaining aspect ratio of a chart in ggplot2
。しかし、ggplot2のドキュメントに従って、この設定は「パネルの縦横比」を参照します。したがって、データは形状を変えてパネルの形状を維持する。
これはggplot2には現在存在しない機能と思われます。しかし、もっと重要なのは、この問題に対する正しい解答または少なくとも回答が文書化されるべきだと思います。
問題のクイック最小限例:
library(ggplot2)
x <- 1:100; data <- data.frame(x = x, y = x * 2)
p <- ggplot(data, aes(x, y)) + geom_point()
p # by default panel and data both fit to device window
p + coord_fixed() # panel changes shape to maintain shape of data
p + theme(aspect.ratio = 1) # data changes shape to maintain shape of panel
p + coord_fixed() + coord_flip() # coord_flip() overwrites coord_fixed()
# popular suggested answer does not maintain aspect ratio of data:
p + coord_flip() + theme(aspect.ratio = 1)
乾杯、私は解決策が現在存在する最高だと思う。 (しかし、最初の文章では、 'テーマ'解決策は間違っていて、必要な資格はありません。私は空間データを見ていて、データが真の形で表示されているかどうかを知ることが重要です。 – mb7744
@ mb7744私は、何人かの人(確かにすべてではないが)にとって、元の解決策は大丈夫であるという事実を単に言及していました。私はあなたに同意していません(これが私が質問に答えた理由です)。 – Axeman
確かに---しかし、私が得ているのは、その違いに気付かず、プロットを誤解している人にとってはうまくいくかもしれないということです。私は、これがSOのこれに関する最後の2つの質問に誤った受け入れられた答えを持っている理由だと思います。しかし、これはちょうど私がニックピッキングしている。私はあなたのソリューションに感謝します! – mb7744