2014-10-10 155 views
0

我有一個時間序列數據集,其中x軸是反向時間順序的事件列表,這樣觀察值將具有看起來像「n-1」或「 n-2「一路下降到1.R - 帶ggplot2的時間序列數據

我想使用ggplot創建一個線圖,創建一條平滑連續的線,連接所有的點,但似乎當我嘗試輸入數據時,x軸非常不穩固。

我目前使用的代碼是

library(ggplot2) 

theoretical = data.frame(PA = c("n-1", "n-2", "n-3"), 
         predictive_value = c(100, 99, 98)); 

p = ggplot(data=theoretical, aes(x=PA, y=predictive_value)) + geom_line(); 
p = p + scale_x_discrete(labels=paste("n-", 1:3, sep="")); 

擬合線和網格劃分通常會出現使用ggplot絕不線所取代,並wayyy分區太多。

+1

這裏沒有足夠的信息來重新創建問題。請查看[如何創建可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),以獲取有關如何包含示例數據的提示實際上可以運行代碼來看到你是同一個東西。否則,很難幫助你。 – MrFlick 2014-10-10 14:41:28

+0

「Wonky」不是有用的描述符。提供導致行爲的數據的(小)示例會很有幫助。 – 2014-10-10 14:42:31

+0

謝謝,我想我已經更新了。 – 2014-10-10 16:14:43

回答

0

當您至少在一個座標軸上使用帶有因子的geom_line()時,您需要指定一個group美學,在這種情況下爲一個常量。

p = ggplot(data=theoretical, aes(x=PA, y=predictive_value, group = 1)) + geom_line() 
p = p + scale_x_discrete(labels=paste("n-", 1:3, sep="")) 
p 

如果你想擺脫次網格線可以添加

theme(panel.grid.minor = element_blank()) 

你的圖表。

請注意,像這樣在一個軸上使用因子可能會帶來一點風險,請按比例放大。使用典型的連續比例可能會更好,只需用「n-1」,「n-2」和「n-3」重新標記點1,2和3。