r - 控制点阵密度图中绘图符号的 alpha 值

标签 r lattice

我正在尝试使用lattice库的密度图函数来显示一些数据。我的数据集非常困惑,所以我想减少底部绘制的符号的 alpha 值(这样您就可以在过度绘制的情况下获得更清晰的 View )。但是,我似乎无法仅更改这些符号的 alpha 值而不使实际密度曲线同样不透明。我正在使用图表的 par.settings 选项并为 superpose.line 和 superpose.symbol 设置不同的值(这适用于更改线型和符号,但由于某种原因不是 alpha 值)。我使用虹膜数据集做了一个小例子来说明我的问题/当前的方法。如果有人有任何建议,我将非常感激。

library(lattice) 
data(iris) 

graph.settings <- list(superpose.line = list(lty = 1:3, lwd = 2, alpha = 1),
                       superpose.symbol = list(pch = 1:3, alpha = 0.3)) 
densityplot( ~ Sepal.Length, data = iris, groups = Species, 
            auto.key = list(columns = 3), aspect = 1, 
            main = "Density Plot of Sepal Lengths", xlab = "Length (mm)", 
            par.settings = graph.settings)

最佳答案

这是一个快速解决方案。它的工作原理是提供一个“自定义”面板函数,该函数调用 panel.densisplot() 两次:第一次调用使用 alpha=0.3 获取地毯点;第二个用 alpha=1 重叠绘制密度曲线。

library(lattice) 
data(iris) 

graph.settings <- list(superpose.line = list(lty = 1:3, lwd = 2),
                       superpose.symbol = list(pch = 1:3)) 
densityplot( ~ Sepal.Length, data = iris, groups = Species, 
            auto.key = list(columns = 3), aspect = 1, 
            main = "Density Plot of Sepal Lengths", xlab = "Length (mm)", 
            par.settings = graph.settings,
            panel = function(x, ...) {
                panel.densityplot(x, ..., alpha = 0.3)
                panel.densityplot(x, ..., plot.points=FALSE, alpha = 1)
            })

关于r - 控制点阵密度图中绘图符号的 alpha 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404104/

相关文章:

r - 查找字符串和长字符串向量之间的最小汉明距离(快速)

r - 连续 y 轴刻度中的真负号

r - mxnet LinearRegressionOutput 性能不佳

c++ - 在 (x,y) 平面中选取随机格点

r - 如何在R中的点阵图形中包装长标题?

r - 如何按时间间隔匹配数据帧?

r - R 中 character() 和 ""之间的差异

r - 如何用晶格xyplot函数添加abline?

r - 为 R 中的多行创建散点图

r - 设置网格中轴标签的格式