我在y軸上考慮市場份額,在x軸上考慮時間,並且需要在每個時間顯示我的5個不同位置。我有這些數據,只是無法得到一個ggplot命令來顯示所有的位置在同一個圖上。如何繪製某些位置的市場份額隨時間的變化
所以現在我有這樣的一個8個數據幀。市場份額在諾基亞手機中。我如何繪製每個區域不斷變化的市場份額?
我在y軸上考慮市場份額,在x軸上考慮時間,並且需要在每個時間顯示我的5個不同位置。我有這些數據,只是無法得到一個ggplot命令來顯示所有的位置在同一個圖上。如何繪製某些位置的市場份額隨時間的變化
所以現在我有這樣的一個8個數據幀。市場份額在諾基亞手機中。我如何繪製每個區域不斷變化的市場份額?
試試這個:
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")
輸出:
鑑於你的問題的澄清,這樣的事情可能會更加的你想找的:
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")
新的輸出:
好的,保持澄清,我的日期範圍從2007 - 2014年,總共有46個國家。有沒有更簡單的方法來繪製這個圖表,而不必輸入所有46個國家,每年8次? –
或者更好的情節做到這一點? –
我的不好,無視「46個國家」的一部分。我需要繪製7個總區域中2007 - 2014年的市場份額變化情況。 –
必須在ggplot代碼中的錯誤。你想找到它的幫助嗎?一些建議[這裏](https://stackoverflow.com/help/mcve)和[這裏](https://stackoverflow.com/q/5963269/903061)。 – Gregor
未來,是的,嘗試添加一些樣本數據以幫助確保最快和最準確的答案。 – www
謝謝@RyanRunge - 添加樣品代碼 –