显然,民间已经想出了如何在Mathematica和LaTeX中制作xkcd风格的图形.我们可以用R做吗?GGPLOT2-ERS?一个geom_xkcd和/或theme_xkcd?
我想在基本图形中,par(xkcd = TRUE)?我该怎么做?

作为ggplot2中的第一个刺(并且在下面更加优雅地显示),将jitter参数添加到一行可以获得很好的手绘外观.所以 -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
这是一个很好的例子 - 但轴和字体显得比较棘手.但是,字体显示已解决(下方).处理轴的唯一方法是将它们清空并用手绘制它们吗?有更优雅的解决方案吗?特别是在ggplot2中,是否可以修改新主题系统中的element_line以获取类似抖动的参数?
我在LaTeX中看到人们将文本包装成螺旋状,如下所示.我想在R中复制这个.
我虽然plotrix的arctext会做,但只要有足够的文字,似乎作一圆为下文图(左)看到.我可以制作aspiral line,如图(右)所示,但不能合并文本和螺旋.
txt <- paste(rep("bendy like spaghetti", 10), collapse=" ")
txt2 <- paste(rep("bendy like spaghetti", 20), collapse=" ")
par(mfrow=c(1, 2), mar=rep(.3, 4)+c(0, 0, 1, 0))
library(plotrix)
plot.new()
plot.window(xlim = c(1, 5), ylim = c(2, 4), asp = 1)
arctext(txt, center = c(3, 3), radius = 1.7,
start = 4 * pi / 3, cex = .75, clockwise = FALSE)
title(main = "Arc Text (plotrix)")
theta <- seq(0, 30 * 2 …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来偏移通过 xy 坐标在一个方向(在 R 中)定义的任意曲线。我可以使用 {polyclip} 包在两个方向上偏移曲线。
library(polyclip)
#> polyclip 1.10-0 built from Clipper C++ version 6.4.0
# Make a curve
t <- seq(10, 0, by = -0.05)
curve <- data.frame(
x = t * cos(t), y = t * sin(t)
)
plot(curve, type = 'l')
# Find offset
offset <- polylineoffset(curve, delta = 0.5,
jointype = "round", endtype = "openbutt")[[1]]
offset <- as.data.frame(offset) # xy coordinates
lines(offset, col = "red")
Run Code Online (Sandbox Code Playgroud)

由于曲线上的点比偏移的delta参数间隔更近,因此我可以通过找出一个点与下一个点之间的距离最大的位置来启发式地分割偏移。
distance <- c(0, sqrt(diff(offset$x)^2 + sqrt(diff(offset$y)^2))) …Run Code Online (Sandbox Code Playgroud)