2017-08-13 175 views
1

我有一個數據框,如下所示:我想繪製count和col.count作爲ggplot圖中的兩條線。我似乎沒有得到這個權利。感謝任何幫助。在ggplot圖中繪製兩條線

month count col.count 
============================= 
16-05-May 1  1154688 
16-06-Jun 1  1092764 
16-07-Jul 2  1060445 
16-08-Aug 19  1092050 
16-09-Sep 173  1041299 
16-10-Oct 1469 1261100 
16-11-Nov 1819 1356139 
16-12-Dec 1263 1272486 
17-01-Jan 748  1170097 
17-02-Feb 684  1016672 

謝謝。

+1

兩個變量之間大小上的差距將會使計數線出現幾乎持平。 –

+0

我也試過log(count)和log(col.count)。更多地看比實際計數值的相對差異。 – Sree

回答

1

兩列中的數字範圍都是關閉的,因此可能需要在y軸上使用對數刻度進行繪圖。以下是如何在R.

# first parse date string into Date object 
df$date <- as.Date(df$month, "%y-%d-%b") # 16-05-May 

library(ggplot2) 
ggplot(df, aes(date)) + scale_y_log10() + 
    geom_line(aes(y = count, colour = "red")) + 
    geom_line(aes(y = col.count, colour = "blue")) 

使用ggplot在同一個圖形繪製兩個變量如果規範化col.count變量,你所描述,那麼你可以繪製在一起,他們沒有一個出現完全平坦關於其他。

library(scales) 
ggplot(df, aes(date)) + scale_y_continuous(labels = comma) + 
    geom_line(aes(y = count, colour = "red")) + 
    geom_line(aes(y = col.count/2000, colour = "blue")) 

two plots on same graph

顯示兩個圖形作爲堆疊在彼此的時間序列是另一種方法,以顯示具有關於y軸大大不同的範圍的兩個變量。

require(gridExtra) 
p1 <- ggplot(df, aes(date,count)) + geom_line(colour = "red") 
p2 <- ggplot(df, aes(date,col.count)) + geom_line(colour = "blue") 
grid.arrange(p1, p2, nrow=2) 

Two graphs stacked on each other with same x-axis

+0

第一個解決方案是我一直在尋找的。我還通過除以col.count/2000來進行比例調整。這樣,我可以讓它工作。非常感謝你。 – Sree