绿荫可以从出现geom_contour(breaks = 1)的中点偏离吗?

时间:2018-10-12 23:35:45

标签: r viridis

我一直在尝试找出我是否可以将黑线从绿线geom_contour(breaks = 5E-14)发散出来。 从本质上讲,黑线是中点,而绿色调色板会在那里出现分歧。这可能吗?

谢谢!

Design.matrix <- expand.grid(
A=seq(0.1E-9, 2E-9, by=0.05E-9), 
B=seq(1E-6, 100.E-6, by=2.5E-6))
Design.matrix$C <-Design.matrix$A * Design.matrix$B
Design.matrix$D <-(Design.matrix$A * Design.matrix$B) * Design.matrix$B
Design.matrix$Ratio <- Design.matrix$C/Design.matrix$D

library(ggplot2)
library(viridis)
(test <- ggplot(Design.matrix, aes(x = A, y = B, z = C, fill = C)) + 
theme(legend.title=element_blank()) +  
geom_raster(interpolate = T) + 
scale_fill_gradientn(colours = rev(viridis(8))) +
geom_contour(breaks = 5E-14, colour="black", size=1)) 

1 个答案:

答案 0 :(得分:0)

这是一种方法-您可以根据距C的距离进行填充:

ggplot(Design.matrix, aes(x = A, y = B, z = C, fill = abs(C-5E-14))) + 
  theme(legend.title=element_blank()) +  
  geom_raster(interpolate = T) + 
  scale_fill_gradientn(colours = rev(viridis(8))) +
  geom_contour(breaks = 5E-14, colour="black", size=1)

enter image description here

或者,如果您希望将填充轴保留为比例测量值,则可以构建一个由翠绿及其反向组成的人造调色板。我在每种颜色中使用了不同数量的颜色进行近似估算,以使发散点与黑线相对应。

ggplot(Design.matrix, aes(x = A, y = B, z = C, fill = C)) + 
  theme(legend.title=element_blank()) +  
  geom_raster(interpolate = T) + 
  scale_fill_gradientn(colours = c(viridis(3),rev(viridis(8)))) +
  geom_contour(breaks = 5E-14, colour="black", size=1)

enter image description here