2017-08-31 72 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年的市场份额变化情况。 –

相关问题