私はggplot2
で「鳥瞰図」または「ダーツボード」プロットを作成しています。私が作成している図にグラデーションの凡例を手動で追加する方法があるか、またはその凡例を追加するための手順を変更する方法があるかどうかを尋ねたいと思います。ここでggplot2で手書きグラデーションの凡例を追加
はで動作するように再現可能なデータセットである:ここでは
step <- 0.1
frac <- seq(0, 1, step)
df <- data.frame(l=levels(cut(0, breaks=frac)), o=frac[1:length(frac)-1], f=c(0.000, 0.028, 0.165, 0.151, 0.149, 0.129, 0.138, 0.060, 0.090, 0.088), cols=c('#0000FF','#4343FF','#FF4343','#FF6969','#FF7070','#FFA4A4','#FF8E8E','#9D9DFF','#F0F0FF','#E8E8FF'))
それは次のようになります。ここでは
> df
df
l o f cols
1 (0,0.1] 0.0 0.000 #0000FF
2 (0.1,0.2] 0.1 0.028 #4343FF
3 (0.2,0.3] 0.2 0.165 #FF4343
4 (0.3,0.4] 0.3 0.151 #FF6969
5 (0.4,0.5] 0.4 0.149 #FF7070
6 (0.5,0.6] 0.5 0.129 #FFA4A4
7 (0.6,0.7] 0.6 0.138 #FF8E8E
8 (0.7,0.8] 0.7 0.060 #9D9DFF
9 (0.8,0.9] 0.8 0.090 #F0F0FF
10 (0.9,1] 0.9 0.088 #E8E8FF
はプロットを生成するための再現性のコードです:
library(ggplot2)
#pdf("test.pdf", width=8, height=8)
p <- ggplot() + ylim(0, 1) + geom_rect(aes(xmin=-1, ymin=df$o, xmax=1, ymax=df$o+step), fill=df$cols) + coord_polar() + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank())
print(p)
#dev.off()
そして、ここにこのコードが生成するプロットがあります - 基本的に、希望の色の塗りつぶしを持つ同心円のセット:
私はdf$f
の最小/最大を使用してラベルで、終了色に開始色から(線形)グラデーションを表示し、このプロットに凡例バーを追加したいと思います。
df
から、または別のcolorRampPalette
オブジェクトの最初と最後のエントリから手動で開始と終了の色を指定することができます。または、colorRampPalette
オブジェクトのカラー配列を指定して補間された色を提供します。私はちょうどメインプロットから別の凡例オブジェクトを生成する方法を知りません。
手動でこのようなオブジェクトを作成してこのプロットに追加する方法はありますか?
私が試みたいくつかのことは、guide_colourbar()
objectとscale_colour_gradientn()
オブジェクトを探索することでしたが、これらのエンティティを使用して私のプロットに何も取得できませんでした。ここでそれらを使用する方法はありますか?
私は親切な助けに感謝ので、私はまだggplotを学んでいます。 –