R中7条条形图的纹理?

R中7条条形图的纹理?,r,plot,visualization,R,Plot,Visualization,在X中,每个值有7个不同的类别。我使用barplot来绘制这些类别。这样的图形在彩色打印机中看起来很好,但如果我希望它在黑白打印机中看起来很好呢。你可以查看下面的图表。我想有不同的颜色纹理,所以图形看起来很好的颜色和黑白打印机 我使用密度=c(10,30,40,50100,60,80)作为条形图函数中的密度参数。有没有其他方法可以在条形图中创建不同的纹理 注意:我在条形图中尝试了角度值。但是,在这种情况下,这不是一个好的解决方案,因为并非所有的条都有高值(即条的高度)。根据我的评论,您可能会发

在X中,每个值有7个不同的类别。我使用barplot来绘制这些类别。这样的图形在彩色打印机中看起来很好,但如果我希望它在黑白打印机中看起来很好呢。你可以查看下面的图表。我想有不同的颜色纹理,所以图形看起来很好的颜色和黑白打印机

我使用密度=c(10,30,40,50100,60,80)作为条形图函数中的密度参数。有没有其他方法可以在条形图中创建不同的纹理


注意:我在条形图中尝试了角度值。但是,在这种情况下,这不是一个好的解决方案,因为并非所有的条都有高值(即条的高度)。

根据我的评论,您可能会发现以下内容很有帮助:

# data generation ---------------------------------------------------------
set.seed(1)
mat <- matrix(runif(4*7, min=0, max=10), 7, 4)
rownames(mat) <- 1:7
colnames(mat) <- LETTERS[1:4]


# plotting settings -------------------------------------------------------
ylim <- range(mat)*c(1,1.5)
angle1 <- rep(c(45,45,135), length.out=7)
angle2 <- rep(c(45,135,135), length.out=7)
density1 <- seq(5,35,length.out=7)
density2 <- seq(5,35,length.out=7)
col <- 1 # rainbow(7)


# plot --------------------------------------------------------------------
op <- par(mar=c(3,3,1,1))
barplot(mat, beside=TRUE, ylim=ylim, col=col, angle=angle1, density=density1)
barplot(mat, add=TRUE, beside=TRUE, ylim=ylim, col=col, angle=angle2, density=density2)
legend("top", legend=1:7, ncol=7, fill=TRUE, col=col, angle=angle1, density=density1)
par(bg="transparent")
legend("top", legend=1:7, ncol=7, fill=TRUE, col=col, angle=angle2, density=density2)
par(op)
#数据生成---------------------------------------------------------
种子(1)

mat灰度怎么样?看看这里的
gray0
gray100
:问题是,在区分灰度条(有7个值)时,你不会发现有很大的区别,这就是为什么在我看来,最好的选择是使用纹理和颜色。这里有一个类似的答案(对于热图,但同样的原则适用):可能尝试不同的线宽,然后添加第二个具有不同角度的绘图,这样就可以进行阴影处理。这很有用,但会让我的眼睛有点流血(Edward Tufte现在在某处发抖)…我不是说我个人会这么做-尤其是在彩色图形不像过去那样受到惩罚的时代(例如,印刷成本). 我只是给出提问者要求的……是否可以更改阴影线的宽度(在绘图和图例中)?是的,使用
lwd
参数