2

我有一个结构如下的数据集:

year    color   toyota  honda   ford
2011    blue    66      75      13
2011    red     75      91      62
2011    green   65      26      57
2012    blue    64      23      10
2012    red     84      8       62
2012    green   67      21      62
2013    blue    31      74      49
2013    red     48      43      35
2013    green   57      62      74
2014    blue    59     100      32
2014    red     72      47      67
2014    green   97      24      70
2015    blue    31       0      79
2015    red     60      35      74
2015    green   51       2      28

(我的实际数据,显示在下面的图表图像中,要大得多,并且有 100 种“颜色”,但我在这里进行了简化,因此您只能理解结构。)

我正在尝试制作一个堆积面积折线图,显示随着时间的推移为特定公司生产了多少辆每种颜色的汽车。(即每家公司都有自己的图表,其中 x 轴 = 年,y 轴 = 生产的汽车)。

我运行这段代码:

qplot(year, toyota, data = dataName, fill = color, group = color, geom= "area", position = "stack") 
+ geom_area() + theme(legend.position = "none")

然而,每家公司的图表都有问题。有看似随机的切割孔以及穿过层顶部的线。

company1_chart

company2_chart

我很困惑为什么会发生甚至可能发生这种情况(尤其是这些漏洞......数据不会堆积起来吗?)如果我让公司在数据结构中变得更长而不是更宽会有帮助吗?

4

1 回答 1

0

即使使用 0 值,您也不应该出现这些错误。我拿了你的数据,偶尔在本田列中添加了 0。

代码(使用ggplot2)

library(ggplot2)
df <- read.csv("cartest.csv", header = TRUE)

ggplot(data=df,aes(x=year,y=h,fill=color)) + 
  geom_area() + 
  ggtitle("car test")

购物车.png

如果您将数据导入为 CSV 或 TSV,并且您的数据列是数字的,那么您应该不会遇到此问题。如果它是作为 .character 导入的,您可以使用以下方法进行转换:

df$h <- as.numeric(df$h)
于 2016-01-21T09:40:45.567 回答