我们怎样才能在R中复制Tufte隐含的水平线?
例如,以下是一个很好的起点:
library(ggplot2)
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw()
Run Code Online (Sandbox Code Playgroud)
删除边框线应该很简单.关键点,水平线与条形重叠,我不清楚.
我想象两种方法:
And*_*rie 18
原则上,这很简单 - 您需要做的就是在新图层中绘制白色水平线.你可以geom_hline
这样做:
library(ggplot2)
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw() +
geom_hline(yintercept=seq(5, 20, 5), col="white")
Run Code Online (Sandbox Code Playgroud)
关于你的第二个问题 - 我想这可能很难融入一个主题,虽然应该可以创建一个自定义geom来读取y-scale中断并相应地绘制线条.
(我很想被证明是错的.)
Gee*_*cid 12
@Andrie答案不是一个很大的补充,但你可以利用这个包ggthemes
来制作Tufte-sque情节ggplot2
.下面,我正在使用theme_tufte
,使用extrafont
包更改字体,并用于opts
微调所有其他视觉功能:
library(ggthemes)
library(extrafont)
ggplot(msleep, aes(x=order)) + stat_bin(width=0.6, fill="gray") +
theme_tufte(base_family="GillSans", base_size=16, ticks=F) +
theme(axis.line=element_blank(), axis.text.x=element_blank(),
axis.title=element_blank()) +
geom_hline(yintercept=seq(5, 20, 5), col="white", lwd=1.2)
Run Code Online (Sandbox Code Playgroud)