我在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 - 添加样品代码 –