2017-08-31 50 views
-3

我在y軸上考慮市場份額,在x軸上考慮時間,並且需要在每個時間顯示我的5個不同位置。我有這些數據,只是無法得到一個ggplot命令來顯示所有的位置在同一個圖上。如何繪製某些位置的市場份額隨時間的變化

enter image description here

所以現在我有這樣的一個8個數據幀。市場份額在諾基亞手機中。我如何繪製每個區域不斷變化的市場份額?

+1

必須在ggplot代碼中的錯誤。你想找到它的幫助嗎?一些建議[這裏](https://stackoverflow.com/help/mcve)和[這裏](https://stackoverflow.com/q/5963269/903061)。 – Gregor

+0

未來,是的,嘗試添加一些樣本數據以幫助確保最快和最準確的答案。 – www

+0

謝謝@RyanRunge - 添加樣品代碼 –

回答

2

試試這個:

require(ggplot2) 
require(scales) 

df <- data.frame(
    Location=c(paste0("Location_",c(sapply(1:5,function(x) rep(x,2))))), 
    Market_Share=c(.10,.30,.30,.05,.20,.20,.15,.40,.25,.05), 
    Date=c("2017-08-30","2017-08-31","2017-08-30","2017-08-31", 
     "2017-08-30","2017-08-31","2017-08-30","2017-08-31", 
     "2017-08-30","2017-08-31"), 
    stringsAsFactors = FALSE 
) 

ggplot(df,aes(x=as.Date(Date),y=Market_Share,color=Location)) + 
    geom_point() + 
    geom_line() + 
    scale_y_continuous(labels = percent_format()) + 
    scale_x_date(labels = date_format("%b-%d-%Y")) + 
    xlab("Date") + 
    ylab("Market Share") 

輸出:

enter image description here

編輯:

鑑於你的問題的澄清,這樣的事情可能會更加的你想找的:

df <- data.frame(
    Location=c("Argentina","Argentina","Brazil","Brazil", 
      "Peru","Peru","Venezuela","Venezuela", 
      "Chile","Chile"), 
    Units=c(7612.40,0.00,540.90,2139.10,879.70,5796.10, 
      25.90,760.00, 2615.70, 1386.30), 
    Date=c(rep(c("2007","2008"),5)), 
    stringsAsFactors = FALSE 
) 

ggplot(df,aes(x=as.numeric(Date),y=as.numeric(Units), 
       color=Location)) + 
    geom_point() + 
    geom_line() + 
    scale_x_continuous(breaks=as.numeric(df$Date)) + 
    xlab("Date") + 
    ylab("Units") 

新的輸出:

enter image description here

+0

好的,保持澄清,我的日期範圍從2007 - 2014年,總共有46個國家。有沒有更簡單的方法來繪製這個圖表,而不必輸入所有46個國家,每年8次? –

+0

或者更好的情節做到這一點? –

+0

我的不好,無視「46個國家」的一部分。我需要繪製7個總區域中2007 - 2014年的市場份額變化情況。 –

相關問題