我正在使用R晶格封装中的水平图。我得到的图看起来如下图所示。
我现在的问题是我需要生成黑白版本进行打印。
有没有一种方法可以将颜色更改为灰度,并为矩形提供背景图案,从而使红色曾经与蓝色可以区分?例如,会想到点或对角破折号。
谢谢!
最佳答案
我找到了一种手动绘制到levelplot面板中并在所有大于0.5的单元格上绘制对角填充图案的方法
但是,我无法在颜色键图例中绘制相同的图案。在阅读了几个小时的论坛并尝试了解晶格源代码后,我一无所知。也许其他人可以解决这个问题。这是我得到的:
library(lattice)
library(RColorBrewer)
cols <- colorRampPalette(brewer.pal(8, "RdBu"))
data <- Harman23.cor$cov
fx <- fy <- c()
for (r in seq(nrow(data)))
for (c in seq(ncol(data)))
{
if (data[r, c] > 0.5)
{
fx <- c(fx, r);
fy <- c(fy, c);
}
}
diag_pattern <- function(...)
{
panel.levelplot(...)
for (i in seq(length(fx)))
{
panel.linejoin(x = c(fx[i],fx[i]+.5), y= c(fy[i]+.5,fy[i]), col="black")
panel.linejoin(x = c(fx[i]-.5,fx[i]+.5), y= c(fy[i]+.5,fy[i]-.5), col="black")
panel.linejoin(x = c(fx[i]-.5,fx[i]), y= c(fy[i],fy[i]-.5), col="black")
}
}
p <- levelplot(data, scales=list(x=list(rot=45)),
xlab="", ylab="", col.regions=cols, panel=diag_pattern)
print(p)
关于r - 在晶格图中使用添加/代替背景颜色的图案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9415344/