2017-04-04 46 views
2

做任何ggplot2嚮導知道如何使this看起來更直觀?具體來說,我在每個時間段的開始和結束時都注意確切的日期(例如,對於Zhenla,酒吧將以註釋說550公元開頭,最後註明說明802AD)。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")) 

注:「顏色」不與值對應得到N-它更是一個佔位符的圖形代碼:

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軸上太「忙」了,但那根本不是太忙。 –