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

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

【问题讨论】:

    标签: r graphics colors lattice


    【解决方案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)) 
        

        【讨论】:

          猜你喜欢
          • 2020-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多