繁体   English   中英

在 ggplot 中创建半离散颜色条

[英]Creating semi-discrete colourbar in ggplot

我正在尝试使用 geom_tile 创建一个图。 源数据是连续的,但我想使用离散级别对其进行着色,以使结果图更易于阅读。 我希望生成的颜色条显示离散级别,但将基础数据称为连续数据。 像这样的东西:颜色条

它本质上是一个覆盖有离散值的连续色标。

到目前为止,我有这个:

require( ggplot2)

x <- rep( 1:10, 10)
y <- rep( 1:10, each=10)
z <- rnorm( length(y))

df <- data.frame( x, y, z)

ggplot( df) + geom_tile( aes( x, y, fill=z)) +
scale_fill_gradient2( low="blue", mid="white", high="red", midpoint=0)

给这个:连续标度

我想将连续变量“z”分箱以设置级别,因此我可以使用 cut:

df$discrete_z <- cut( z, breaks=seq( -3,3, 1), include.lowest=T)

ggplot( df) + geom_tile( aes( x, y, fill=discrete_z)) +   
scale_fill_brewer( type="div", palette="PRGn", guide="legend")

给这个:离散尺度

这更接近,但现在数字表示为每个颜色“块”的范围,而我试图让数字单独位于颜色块之间,以更好地展示连续比例。

如果您选择每个区间的下限作为 bin 名称,您会得到如下内容:

df$discrete_z <- cut( z, breaks=seq( -3,3, 1), labels = seq( -3,2, 1), include.lowest=T)

ggplot( df) + geom_tile( aes( x, y, fill=discrete_z)) +   
  scale_fill_brewer( type="div", palette="PRGn", guide="legend")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM