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
てフォントを変更し、他のすべての視覚的機能を微調整するために使用しています。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)
これには、非常に簡単なベース R ソリューションもあります。
tmp <- table(msleep$order)
barplot(tmp, col='black', las=3)
abline(h=seq(5, max(tmp), by=5), col='white', lwd=2)