使用文本标记最小和最大刻度填充渐变图例:ggplot2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用文本标记最小和最大刻度填充渐变图例:ggplot2相关的知识,希望对你有一定的参考价值。

我在ggplot2创建了一个使用scale_fill_gradientn的情节。我想在缩放图例的最小值和最大值处添加文本。例如,在图例最小显示“最小”和图例最大显示“最大”。有些帖子使用离散填充并添加带有数字而不是文本的标签(例如here),但我不确定如何使用labels功能与scale_fill_gradientn仅在最小值和最大值处插入文本。目前我很容易出错:

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")
答案

对于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))

以上是关于使用文本标记最小和最大刻度填充渐变图例:ggplot2的主要内容,如果未能解决你的问题,请参考以下文章

在图例刻度中显示正确的域值的问题

减少 Flex 图表上轴标签和刻度标记之间的填充

ggplot2:使用填充geom_bar指定颜色时缺少图例

xCode 在渐变渐变时为视图设置动画

ggplot2 没有坐标轴、图例等的绘图

matplotlib绘制图表,设置刻度标签最大最小刻度字体大小,label位置刻度轴箭头等