RでTufteの暗黙の水平線をどのように複製できますか?

たとえば、次の例が適切な出発点です。
library(ggplot2)
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw()
境界線の削除は簡単です。水平線にバーを重ねるという重要なポイントは、私にはわかりません。
ここで 2 つのアプローチを想像します。
- この特定の例のアドホック ソリューション
- テーマへの組み込み方法の提案
原則として、これは簡単です。新しいレイヤーに白い水平線を引くだけです。これを行うために使用できますgeom_hline:
library(ggplot2)
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw() +
geom_hline(yintercept=seq(5, 20, 5), col="white")

2 番目の質問については、これをテーマに組み込むのは難しいと思いますが、y スケールのブレークを読み取り、それに応じて線をプロットするカスタム geom を作成することは可能であるはずです。
(私が間違っていることが証明されたいです。)
@Andrieの回答への大きな追加ではありませんが、パッケージggthemesを利用してTufte-squeプロットをggplot2. 以下では、パッケージを使用しtheme_tufteてフォントを変更し、他のすべての視覚的機能を微調整するために使用しています。extrafontopts
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)

これには、非常に簡単なベース R ソリューションもあります。
tmp <- table(msleep$order)
barplot(tmp, col='black', las=3)
abline(h=seq(5, max(tmp), by=5), col='white', lwd=2)
