Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在比例填充梯度中使用绝对值而不是相对值n_R_Ggplot2_Gradient_Heatmap - Fatal编程技术网

R 在比例填充梯度中使用绝对值而不是相对值n

R 在比例填充梯度中使用绝对值而不是相对值n,r,ggplot2,gradient,heatmap,R,Ggplot2,Gradient,Heatmap,我想要一个平滑的渐变,从0的红色到0.5的白色再到1的绿色 我的数据没有涵盖这个完整的范围,而且似乎scale\u fill\u gradientn将值参数设置为相对于数据,而不是它们的实际值 下图显示白色高于0.5,而不是0.5。我如何纠正这一点,并将渐变限制设置为我编写的特定值,而不是相对于数据 library(tidyverse) set.seed(1) expand_grid(x=1:10, y=1:10) %>% mutate(val = rnorm(100, mean =

我想要一个平滑的渐变,从0的红色到0.5的白色再到1的绿色

我的数据没有涵盖这个完整的范围,而且似乎
scale\u fill\u gradientn
参数设置为相对于数据,而不是它们的实际值

下图显示白色高于0.5,而不是0.5。我如何纠正这一点,并将渐变限制设置为我编写的特定值,而不是相对于数据

library(tidyverse)
set.seed(1)
expand_grid(x=1:10, y=1:10) %>%
  mutate(val = rnorm(100, mean = 0.55, sd = 0.05)) %>%
  ggplot(aes(x, y)) +
  geom_tile(aes(fill = val)) +
  geom_text(aes(label = round(val, 3))) + 
  scale_fill_gradientn(colours = c("red","white","green"),
                       values = scales::rescale(c(0.0, 0.5, 1.0)))

您只需设置
scale\u fill\u gradientn的
限制
参数

库(tidyverse)
种子(1)
展开网格(x=1:10,y=1:10)%>%
突变(val=rnorm(100,平均值=0.55,标准差=0.05))%>%
ggplot(aes(x,y))+
geom_瓷砖(aes(填充=val))+
几何图形文本(aes(标签=圆形(val,3)))+
比例填充梯度n(颜色=c(“红色”、“白色”、“绿色”),
极限=c(0.0,1.0))


由(v0.3.0)创建于2020-02-18这适用于我的特定示例,中点为0.5。一般情况如何?说我要0.45的白色?或者扩展到三种以上的颜色?@conor这是当你添加
重缩放时-你使用的是比例限制,而不是它。限制只说明了您想要设置的最小值和最大值。“重缩放”以从最小到最大的比例设置要发生更改的位置。