20

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

タフトバー

たとえば、次の例が適切な出発点です。

library(ggplot2)    
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw()

境界線の削除は簡単です。水平線にバーを重ねるという重要なポイントは、私にはわかりません。

ここで 2 つのアプローチを想像します。

  1. この特定の例のアドホック ソリューション
  2. テーマへの組み込み方法の提案
4

3 に答える 3

18

原則として、これは簡単です。新しいレイヤーに白い水平線を引くだけです。これを行うために使用できます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 を作成することは可能であるはずです。

(私が間違っていることが証明されたいです。)

于 2012-12-04T11:10:22.113 に答える
12

@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)

ここに画像の説明を入力

于 2013-03-24T13:17:21.850 に答える
3

これには、非常に簡単なベース R ソリューションもあります。

tmp <- table(msleep$order)
barplot(tmp, col='black', las=3)
abline(h=seq(5, max(tmp), by=5), col='white', lwd=2)

ここに画像の説明を入力

于 2013-10-26T18:44:09.440 に答える