R geom_line未按预期绘图

时间:2016-09-06 12:20:02

标签: r ggplot2

我使用以下代码绘制堆积区域图,我得到了预期的图。

P <- ggplot(DATA2, aes(x=bucket,y=volume, group=model, fill=model,label=volume)) +  #ggplot initial parameters
  geom_ribbon(position='fill', aes(ymin=0, ymax=1))

area plot no lines

但是当我添加读取相同数据源的行时,我会在图表的右侧出现未对齐的结果

P + geom_line(position='fill',  aes(group=model, ymax=1))

enter area plot with lines

有谁知道为什么会这样?两个图都在读取相同的数据源,所以我无法弄清楚问题是什么。

3 个答案:

答案 0 :(得分:0)

我有一个答案,我希望它适合你,它看起来不错,但与原始图表有很大不同:

library(ggplot2)
DATA2 <- read.csv("C:/Users/corcoranbarriosd/Downloads/porsche model volumes.csv", header = TRUE, stringsAsFactors = FALSE)

根据我的经验,您希望将X作为数字变量并将其作为字符串,如果不是这样我可以更改它,但这会将您的存储桶转换为数字向量:

bucket.list <- strsplit(unlist(DATA2$bucket), "[^0-9]+")

x=numeric()
for (i in 1:length(bucket.list)) {
     x[i] <-  bucket.list[[i]][2]  
     }

DATA2$bucket <- as.numeric(x)

P <- ggplot(DATA2, aes(x=bucket,y=volume, group=model, fill=model,label=volume)) + 
geom_ribbon(aes(ymin=0, ymax=volume))+ geom_line(aes(group=model, ymax=volume))

它给了我区域和线条相互跟踪,希望你需要的是

答案 1 :(得分:0)

如果您切换到使用driver.get("....net");代替WebDriver driver; @Before public void before(){ System.setProperty("webdriver.chrome.driver", "C:/Users/JARs/chromedriver_win32/chromedriver.exe"); driver = new ChromeDriver(); driver.get("....net"); } ,则一切似乎都按预期工作。我不认为geom_path的排序与geom_line的行为相同(并且怀疑geom_line - 如geom_ribbon - 假设基数y值为零)< / p>

geom_line

应该给你

enter image description here

答案 2 :(得分:0)

实际上,如果您想要做的就是在区域周围绘制轮廓,那么您可以使用颜色美学来做同样的事情。

ggplot(DATA2, aes(x=bucket,y=volume, group=model, fill=model,label=volume)) +
  geom_ribbon(position='fill', aes(ymin=0, ymax=1), colour = "black")