データポイント(X、Y)に割り当てられたラベルと色を抽出したいと思います。私はthis solutionで言及されたアプローチを使用してそれらを抽出しようとしました。ggplot_buildオブジェクトから凡例ラベルを抽出する際にエラーが発生しました
head(dataPlot)
# Source: local data frame [6 x 3]
# Groups: EFOValue [2]
#
# # A tibble: 6 x 3
# X Y EFOValue
# <dbl> <dbl> <chr>
# 1 0.505115 0.348486 adipose tissue
# 2 0.365520 0.414446 adipose tissue
# 3 0.365520 0.414446 adipose tissue
# 4 0.526531 0.341508 adrenal gland
# 5 0.526531 0.341508 adrenal gland
# 6 0.412384 0.385316 adrenal gland
p2 <- ggplot(dataPlot, aes(x=X, y=Y, color=EFOValue)) + geom_point()
g2 <- ggplot_build(p2)
data.frame(colours = unique(g2$data[[1]]["colour"]),
label = levels(g2$plot$data[, g2$plot$labels$colour])
サンプルコードは、サンプルデータセットiris
で期待通りに機能しました。 このデータセットの場合、dataPlot
、出力プロットは期待どおりです。
しかし、私はが空であることに気付きました。g2
オブジェクトでは値の抽出が不可能でした。これの理由と、このggplotのアプローチでのエラーをどのように克服するのかを教えてください。これを行うための他の選択肢があります:それぞれのレベルに色を割り当てることによって、プロットシステムに色を渡すかのどちらかです。
虹彩データセットを使用しているので、例を示すことができますか?あなたのリンクからの回答は期待される結果を示します – user20650
ああ...データをデータフレームに変換するか、 'label = levels(g $ plot $ data [[g $ plot $ labels $ color]])' – user20650
を使ってもデータフレームでは機能しませんでした。 – Prradep