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语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战
R:如何在 R 3.2.1 中使用 lattice 并行化多面板绘图?
如何使用 R lattice 重塑堆积条形图的数据 [重复]
R语言使用hexSticker包将lattice包可视化的结果转换为六角图(六角贴六角形贴纸lattice plot to hex sticker)