重新创建TufteMoiré振动

Tyl*_*ker 7 plot r

Tufte给出了一个很好的例子,说明为什么交叉影线是扭曲的,微光效果(The Visual Display of Quantitative Information,2001,p.108)看起来类似于:

在此输入图像描述

虽然他很保守.我怎么能在R中复制这个?由于认为最简单的复制方式并不是一种好的做法,因此具有挑战性.

eip*_*i10 9

这是一个使用选项abline:

plot(NA,NA, xlim=c(0,100), ylim=c(0,100))
for(i in seq(-15,600,6)) {
  abline(i, -3, lwd=6)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

根据Tyler 编辑:这是我在knitr doc中使用的内容,就像原作一样恼人.

plot(NA,NA, xlim=c(0,100), ylim=c(0,100), ylab=NA, xlab=NA, yaxt='n', xaxt='n', bty = "n")
for(i in seq(-15,500,6)) {
  abline(i, -3, lwd=4)
}
Run Code Online (Sandbox Code Playgroud)


the*_*ail 9

polygon 救援:

plot(0:1,type="n")
polygon(
  x=c(1,1,2,2),
  y=c(1,0,0,1),
  density=10,
  angle=135,
  lwd=5, 
  border=NA
)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


ale*_*han 6

为了完整性,这是一个ggplot2解决方案,因为一直面临的挑战是如何正确获取基础数据......

hatch <- function(xsequence, ysequence, weight = 1) {
  require(ggplot2) 
  df <- data.frame(x = c(rep(0, length(ysequence)),xsequence, xsequence, rep(max(xsequence), length(ysequence))),
                   y = c(ysequence, rep(max(ysequence), length(xsequence)), rep(0, length(xsequence)), ysequence), 
                   group = seq_along(1:(length(xsequence) + length(ysequence))))
  p <- ggplot(df, aes(x, y)) + geom_line(aes(group = group), size = weight)
  print(p + theme(panel.background = element_rect(fill = "transparent"),
                  axis.text = element_blank(),
                  axis.ticks = element_blank(),
                  axis.title = element_blank()))

}
hatch(1:100, 1:40, 1.5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述