R:如何改变 lattice (levelplot) 颜色主题?

Posted

技术标签:

【中文标题】R:如何改变 lattice (levelplot) 颜色主题?【英文标题】:R: how to change lattice (levelplot) color theme? 【发布时间】:2011-04-12 08:40:58 【问题描述】:

我安装的默认主题是将值映射到粉红色和青色的东西。如何将其更改为例如灰度主题?

【问题讨论】:

【参考方案1】:

你可以使用

library(lattice)
lattice.options(default.theme = standard.theme(color = FALSE))

打开适合打印的黑白。我也玩过类似的东西

sb <- trellis.par.get("strip.background") 
sb[["col"]][1] <- "lightgray"
trellis.par.set("strip.background", sb) 

只改变标题背景。

我认为人们只在这里问ggplot2 问题:) 很高兴看到一些lattice 进行更改。

【讨论】:

确实,只要付出足够的努力,就可以说服 lattice 生成具有little to envy to ggplot2's polished looks 的图。据我所知,ggplot2 没有类似格子的主题。 这不起作用,至少在 org-mode 中不起作用。不得不使用trellis.par.set(canonical.theme(color = FALSE)) @Henrik 我也一样 - 感谢分享您的解决方案!【参考方案2】:

感谢大家的回答!它还帮助我找到有关该主题的更多信息。我了解到我可以使用以下方法控制灰度等级:

levelplot(my_var, col.regions = gray(0:100/100))

这给了我从黑色 (0) 到白色 (1) 的 100 种灰色阴影。

我正在使用该函数来绘制已预处理为双矩阵的灰度图像(照片)。我不知道这是否是最好的方法,但到目前为止它有效,我相信它为我提供了比 EBImage 和 rimage 库中的基本显示选项更多的绘图选项。我不知道如何更改调色板以匹配显示彩色图像,但我很高兴到目前为止我不必这样做......

【讨论】:

如果您的图像中有 256 级灰度(8 位),也许灰度(0:255/255)会更接近原始? 嘿,一个很好的提示!尽管就我的图像而言,我不再看到从 50 开始的值的差异。【参考方案3】:

有很多方法可以完成您的请求。最简单的是:

trellis.device(color = FALSE)

另一个是

ltheme <- canonical.theme(color = FALSE) ## in-built B&W theme 
ltheme$strip.background$col <- "transparent" ## change strip bg 
lattice.options(default.theme = ltheme) ## set as default 

查看此邮件存档项目:Re: [R] specify lattice black-and-white theme 了解更多信息。

【讨论】:

【参考方案4】:

您可能还想考虑使用panel.levelplot.raster,因为它可以显着减小图形大小,正如我最近发现的那样。将此技巧与一般更改格子设置相结合,以下是以下示例:

trellis.par.set(regions=list(col=topo.colors(100)))
levelplot(volcano, panel = panel.levelplot.raster)

levelplot(volcano, panel = panel.levelplot.raster,
          par.settings=list(regions=list(col=topo.colors(100))))

第二种方法具有欺骗性,因为网格设置实际上是全局更改的。虽然我不知道 col.regions 参数 - 这非常好,因为它似乎在本地更改颜色主题。

【讨论】:

【参考方案5】:

唯一对我有用的是:

>trellis.par.set(canonical.theme(color = FALSE)) 

【讨论】:

以上是关于R:如何改变 lattice (levelplot) 颜色主题?的主要内容,如果未能解决你的问题,请参考以下文章

R上的绘图问题(使用热图)

R语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战

R:如何在 R 3.2.1 中使用 lattice 并行化多面板绘图?

如何使用 R lattice 重塑堆积条形图的数据 [重复]

R语言使用hexSticker包将lattice包可视化的结果转换为六角图(六角贴六角形贴纸lattice plot to hex sticker)

R语言进阶之Lattice绘图