2017-04-04 14 views
2

ggplot2の任意のウィザードは、これをより視覚的に見えるようにする方法を知っていますか?具体的には、正確な日付(つまり、Zhenlaの場合、550 ADを表す注釈で始まり、802ADを示す注釈で終わるZhenlaの場合)の各期間の始めと終わりの注釈を考えています。ggplot2:視覚的に直感的なタイムラインを作成するR

私は注釈ドキュメントを見てきましたが、視覚的に魅力的なものは何も見つかりませんでした。しかし、ggplot2とそのパッケージファミリを私が知る限り、そこには魅力的なオプションがあると確信しています。

私はまた、これを美的に喜ばせるために、皆さんが皆さんに持っている可能性のある他の提案についても興味があります。ここで

はデータです:

cambodia = data.frame(Period = c("Funan", "Chenla/Zhenla","Khmer Empire","Dark Ages of Cambodia"),StartDate = c(-500,550,802,1431), EndDate = c(550,802,1431,1863), Color = c("lightblue","lightgreen","lightyellow","pink")) 

注:「色」の値と一致しないことがグラフコードのプレースホルダの多くはでgiven-:

g2 <- ggplot() + 
geom_segment(data=cambodia, aes(x=StartDate, xend=EndDate, y=Period, yend=Period, color=Color), linetype=1, size=2) + 
scale_colour_brewer(palette = "Pastel1")+ 
xlab("Time")+ 
ylab("Periods of History")+ 
theme_bw() + theme(panel.grid.minor = element_blank(), panel.grid.major = element_blank()) + theme(aspect.ratio = .2) 
g2 + theme(legend.position="none") 
+0

"より直感的な"は明確なプログラミング仕様ではありません。これがプログラミングに関する質問ではない場合、Stack Overflowに属しません。多分何らかのデザインフォーラムを試してみてください。 – MrFlick

+0

ここに提案があります:y軸スケールを変えないでください。すべてのセグメントの高さを同じにします。 – yeedle

答えて

2

それは本当にプログラミングではありませんggplotの可能性をどのようにプレイするかを示しているので、まだ興味深いと思います。私は(私も、テキストをどこに配置するかについてはよく分からない)同じ高さにすべてのセグメントを入れて、あなたが興味を持っているメインの日付を表示するには、x軸を使用します。

enter image description here

ggplot(data=cambodia) + 
    geom_segment(aes(x=StartDate, xend=EndDate, y=0., yend=0., color=Period) , linetype=1, size=4) + 
    scale_colour_brewer(palette = "Pastel1")+ 
    scale_y_continuous(limits=c(0,0.5))+ 
    scale_x_continuous(limits=c(-500,2000), breaks= c(seq(0,2000,by=1000), cambodia$StartDate, cambodia$EndDate[4]))+ 
    xlab("Time")+ 
    ylab("Periods of History")+ 
    theme_bw() + theme(panel.grid.minor = element_blank(), panel.grid.major = element_blank(), axis.title.y=element_blank(),axis.text.y=element_blank(), axis.ticks.y=element_blank()) + 
    theme(aspect.ratio = .2)+ 
    theme(legend.position="none") + 
    geom_text(aes(x=StartDate-100 + (EndDate- StartDate)/2,y=0.05,label=Period,angle=25,hjust=0)) 
+0

結果チャートを含めてもよろしいですか?これはあなたの答えをより良く評価するのに役立ちます。 – Uwe

+0

私はそれが本当にいいと思う、あなたは、より直感的です。私はそれがx軸であまりにも "忙しい"ためではないと思っていましたが、あまりにも忙しくはありません。 –

関連する問題