显然,民间已经想出了如何在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以获取类似抖动的参数?
我看到几篇关于改变 ggplot中线宽的帖子.答案虽然对OP有效且有效,但会改变线条大小.也就是说,ggplot似乎将线条视为一系列单位,并且尺寸增加了每个单元的长度和宽度,使得其他调整更粗糙.
我希望有一种方法可以使线条更宽(更厚)而不会影响长度,反过来又会影响破折号.
我从https://cran.r-project.org/web/packages/ggplot2/vignettes/ggplot2-specs.html借用了一些代码来说明我的意思:
library(ggplot2)
#A simple plot with manually set dashes.
#The first numeral is units of dash length, the second units in the gap in hexadecimal.
lty <- c("11", "18", "1f", "81", "88", "8f", "f1", "f8", "ff")
linetypes <- data.frame(y = seq_along(lty), lty = lty)
ggplot(linetypes, aes(0, y)) +
geom_segment(aes(xend = 5, yend = y, linetype = lty)) +
scale_linetype_identity() +
geom_text(aes(label = lty), hjust = 0, nudge_y = 0.2) + …
Run Code Online (Sandbox Code Playgroud)