7

ggplot2 のこのリファレンス ページによると、次のコマンドは、x と y のアスペクト比が等しい (1:1) 必要があります。

qplot(mpg, wt, data = mtcars) + coord_equal(ratio = 1) 

ただし、入力すると、これが表示されます。 ここに画像の説明を入力

誰が何が問題なのか知っていますか?

編集:

しかし+coord_equal()、1:1 の縦横比を得ることができます。ただし、右側に凡例を追加するとすぐに、1:1 のアスペクトが変更されます。提供される提案は、目的の効果を達成するにはあまりにも面倒です。提案どおり、github/ggplot2 にチケットを提出しました。

4

3 に答える 3

9

私のコメントを答えに変えることもできます。

あなたcoord_equal(ratio = 1)がしていることは、両方の軸の等しい長さが単位の同じ変化を表していることを確認することです。したがって、両方の軸で 1cm = 5 単位です (たとえば、その変換率はおそらく正しくありませんが、考え方は同じです)。x 軸はより可変であるため、そのように縮みます。coord_equaly 軸をさらに引き伸ばしたい場合は、ylim パラメータを追加できます。

于 2012-09-16T02:13:54.800 に答える
5

github/ggplot2 チケット提出後。ウィンストンは簡潔な解決策を見つけるのを手伝ってくれました:

qplot(mpg,wt,data=mtcars, shape="carb") + theme(aspect.ratio=1)

また、ggplot2 0.8 から 0.9 の間にいくつかの動作の変更があるようです。元のドキュメントはおそらく古くなっています。

于 2012-09-19T18:46:02.127 に答える
2

リファレンス ページのようなプロットを得るには、y 軸の範囲を手動で変更する必要があります。

library(ggplot2)

r_wt <- range(with(mtcars, wt))
r_mpg <- range(with(mtcars, mpg))
cent <- mean(r_wt)
ylimits <- cent + c(-1, +1) * diff(r_mpg)/2

qplot(mpg, wt, data = mtcars) + coord_cartesian(ylim = ylimits)

ここに画像の説明を入力

于 2012-09-16T07:31:53.217 に答える