私はちょうど2回の観測で非常に単純なバブルチャートを作成しています。 後でラベルを追加するために、各バブルにタンジェントを追加したいと思います。接触のポイントは、各バブルの上部または下部になければなりません。バブルに接線を追加する方法
例:
library("ggplot2")
df <- data.frame(group=c(FALSE,TRUE),
value=c(5,30))
ggplot(df) +
geom_point(aes(x=group,
y=0,
size=value,
fill=group),
shape=21) +
scale_size_area(max_size=25) +
theme_void() +
theme(legend.position = "none")
私は何を達成したいことはこれです:
これを行うにはどのように私の最高の推測のようなものを追加することになります。
...
annotate("segment",
x = 0.2, xend = 1,
y = pointOfContact_1, yend = pointOfContact_1) +
annotate("segment",
x = 2.8, xend = 2,
y = pointOfContact_2, yend = pointOfContact_2)
しかし、接触点(y値)の計算方法はわかりません。 ggplot_build()
にお会いになったこともありませんでした...
アイデアをお持ちですか?
プロットサイズの変更 'geom_point'がスケールしますを提供します。 1つの解決策は、代わりに 'geom_polygon'を使ってサークルをプロットすることです。次に接触点(center + - radius)を確実に計算できます。 – Axeman
mh ... 'geom_point'で行えない場合は、' geom_polygon'よりも 'ggforce :: geom_circle()'が簡単な方法です。 –
確かに確かです。スケーリングの変更などを処理するよりもずっと痛いことはありません。 – Axeman