R语言绘制漫画图表

浏览: 1581

今天为大家分享如何用R语言绘制出漫画风的图表,算是R语言图表中的另类吧,为大家在学习R的路上增添乐趣。


需要包

library(ggplot2)
library(ggrepel)
library(xkcd)


绘图

name = rownames(mtcars)
mtcar = data.frame(name=name,mtcars)
xrange <- range(mtcar$mpg)
yrange <- range(mtcar$hp)

ggplot(mtcar, aes(mpg,hp))+
  geom_point(shape=21,fill='skyblue',size=2)+
  geom_text_repel(aes(label=name),size=5,
                  fontface = 'italic',family = 'HersheyScript')+
  labs(title= "A Plot Script With R",subtitle = Sys.time(),
       caption = R.version.string)+
  xkcdaxis(xrange,yrange)


Clipboard Image.png


Stack Overflow 社区的作品

library(ggplot2)
library(extrafont)

### Already have read in fonts (see previous answer on how to do this)
download.file("http://simonsoftware.se/other/xkcd.ttf",
               dest="xkcd.ttf", mode="wb")
system("mkdir ~/.fonts")
system("cp xkcd.ttf ~/.fonts")
font_import(pattern = "[X/x]kcd", prompt=FALSE)
loadfonts()
### Set up the trial dataset 
data <- NULL
data$x <- seq(1, 10, 0.1)
data$y1 <- sin(data$x)
data$y2 <- cos(data$x)
data$xaxis <- -1.5

data <- as.data.frame(data)

### XKCD theme
theme_xkcd <- theme(
  panel.background = element_rect(fill="white"), 
  axis.ticks = element_line(colour=NA),
  panel.grid = element_line(colour="white"),
  axis.text.y = element_text(colour=NA), 
  axis.text.x = element_text(colour="black"),
  text = element_text(size=16, family="HersheyScript")
)

### Plot the chart
p <- ggplot(data=data, aes(x=x, y=y1))+
  geom_line(aes(y=y2), position="jitter")+
  geom_line(colour="white", size=3, position="jitter")+
  geom_line(colour="red", size=1, position="jitter")+
  geom_text(family="HersheyScript", x=6, y=-1.2, label="A SIN AND COS CURVE")+
  geom_line(aes(y=xaxis), position = position_jitter(h = 0.005), colour="black")+
  scale_x_continuous(breaks=c(2, 5, 6, 9), 
                     labels = c("YARD", "STEPS", "DOOR", "INSIDE"))+labs(x="", y="")+
  theme_xkcd()
p

Clipboard Image.png

Clipboard Image.png


推荐 0
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册