【发布时间】:2014-11-03 23:47:55
【问题描述】:
我试图在 X 轴上绘制 Date,在 Y 轴上绘制 Revenue。我有大约 16000 名客户的数据,每周汇总收入。数据集看起来像下面的示例数据集(除了我有大约 100 周和 16000 个客户的数据):
CustNum Date Revenue
1 2013-01-07 35
1 2013-01-14 23
1 2013-01-21 42
1 2013-01-28 65
2 2013-01-07 78
2 2013-01-14 48
2 2013-01-21 85
2 2013-01-28 34
我想将这些数据绘制在一个图上,图中的一条线代表一位客户。换句话说,该图将有超过 16000 行,每周为每个客户显示Revenue。
现在,我知道这个绘图会非常混乱,上面有 16000 行,我想就如何更好地绘制这些数据提出建议,这样它就不会那么混乱。
我尝试了以下代码,但没有给我想要的结果:
p <- ggplot() + geom_line(data=res,aes(x=Date,y=Revenue,color=custnum))
这并没有为多个客户提供多条线路。
所以我基本上有两个问题:
有什么更好的方式来表示这些数据?
如何改进我的代码以在单个图上显示 16000 行? (如果我能得到另一种表示这些数据的方式,我不太关心这个问题)
对此的任何帮助将不胜感激。
【问题讨论】:
-
你想用你的情节传达什么信息?客户之间有一种普遍的趋势吗?或者另一方面,有很大的可变性?确定您要显示的什么,然后才选择如何显示它。
-
绘制此信息后,我将尝试表明某些营销活动影响了总客户的一个子集,我将对其进行子集化并显示在同一个图上。所以最终会显示营销活动的效果。
-
也许
geom_line(data=res,aes(x=Date,y=Revenue,group=CustNum),alpha=0.2)? -
@Patthebug 我的意思是,你想展示一段时间内的趋势吗,在某个时间点之后事情发生了变化,那种“what”。我只是想了解您是否真的需要线条。例如,箱线图或小提琴图可能是一种选择......无论如何,你会发现很难想出 10 种容易辨别的颜色,更不用说 16000 种了。这些线条将无法区分,因此毫无用处,恕我直言。跨度>
-
@ZéLoff - 我同意颜色根本无法区分。对于您的问题,是的,我想表明在某些客户的特定时间点之后情况发生了变化,而对于其他客户而言,情况是一致的。例如。我们针对少数客户开展了一项活动,问题是该活动如何影响与这些客户相关的收入。我想我应该专门关注受影响的客户,而不是同时关注所有客户。
标签: r plot ggplot2 visualization