web-dev-qa-db-ja.com

スケール塗りつぶしグラデーションの凡例の最小値と最大値にテキストでラベルを付ける:ggplot2

_ggplot2_を使用する_scale_fill_gradientn_で作成されたプロットがあります。スケールの凡例の最小値と最大値にテキストを追加したいと思います。たとえば、凡例の最小値には「最小」と表示され、凡例の最大値には「最大」と表示されます。個別の塗りつぶしを使用し、テキストではなく数字でラベルを追加する投稿があります(たとえば here )が、_scale_fill_gradientn_でlabels機能を使用してmin最大現在、私はエラーを取得しがちです:

_Error in scale_labels.continuous(scale, breaks) : 
Breaks and labels are different lengths
_

このタイプのスケール/塗りつぶしのggplot2内でこのテキストラベルは可能ですか?

_# The example code here produces an plot for illustrative purposes only.
# create data frame, from ggplot2 documentation
df <- expand.grid(x = 0:5, y = 0:5) 
df$z <- runif(nrow(df))

#plot
ggplot(df, aes(x, y, fill = z)) + geom_raster() + 
scale_fill_gradientn(colours=topo.colors(7),na.value = "transparent")
_
18
nofunsally

scale_fill_gradientn()の場合、両方の引数を指定する必要があります:breaks=およびlabels=同じ長さ。引数付きlimits=カラーバーを必要な最小値と最大値に拡張します。

ggplot(df, aes(x, y, fill = z)) + geom_raster() + 
      scale_fill_gradientn(colours=topo.colors(7),na.value = "transparent",
                           breaks=c(0,0.5,1),labels=c("Minimum",0.5,"Maximum"),
                           limits=c(0,1))

enter image description here

36
Didzis Elferts