首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >viridis能从geom_contour (breaks=1)发生的中点偏离吗?

viridis能从geom_contour (breaks=1)发生的中点偏离吗?
EN

Stack Overflow用户
提问于 2018-10-13 07:35:45
回答 1查看 596关注 0票数 0

我一直在尝试弄清楚是否可以将viridis与黑线geom_contour(breaks = 5E-14)分开。在本质上,黑线是中点,而viridis调色板会在那里发散。这个是可能的吗?

谢谢!

代码语言:javascript
复制
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)) 
EN

回答 1

Stack Overflow用户

发布于 2018-10-13 12:14:33

这里有一种方法--你可以根据与C语言的距离来填充:

代码语言:javascript
复制
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)

或者,如果你想保持填充轴作为比例测量值,你可以构造一个由viridis和它的反面组成的人工调色板。我使用了不同数量的颜色来近似,以便发散点与黑线相对应。

代码语言:javascript
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52788218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档