绘制三变量折线图

Plot three-variable line chart

我需要根据下面的 dataset 绘制包含 2 条线的折线图:

我需要图表的每一行都与技术匹配。 X 和 Y 的值分别是 Release 和 Added。我需要生成的图表类似于下图中的图表:

为了绘制第一行,我试过:

plot(IrisChangeModules[IrisChangeModules$Technique=="aop"]$Added, IrisChangeModules[IrisChangeModules$Technique=="aop"]$Release, type = "l")

首先创建一个有序的发布int
IrisChangeModules$release_n = 1:nrow(IrisChangeModules)

现在创建一个空白图,type="n"意味着实际上什么都没有绘制。 plot(Added~release_n,data=IrisChangeModules,type="n",xaxt = "n")

使用原始变量创建轴标签(如果您有超过 4 个版本,您可能需要更新 at)。 axis(1,at=1:4,labels=IrisChangeModules$Release)

需要添加行

lines(Added~release_n,data=IrisChangeModules[IrisChangeModules$tech=="dop",],type='l',col="green")
lines(Added~release_n,data=IrisChangeModules[IrisChangeModules$tech=="aop",],type='l',col="red")

添加图例,如果添加更多行,请确保正在更新

legend(1,90, 
       legend=c("dop", "aop"),
       col=c("green", "red"), 
       lty=1, 
       cex=0.8)

使用 ggplot(虽然不是 base r 解决方案),获得所需输出的一种方法可以是:

library(ggplot2)

ggplot(dataset, aes(x=Release, y=Added, group=Technique)) + geom_line(aes(linetype = Technique, color=Technique)) + geom_point(aes(color = Technique)) + theme_bw()

给定你的虚拟数据的输出看起来是:

您可以使用 ggplot 的不同参数来定位图例和情节的其他方面。

更新:

  1. 从您的脚本中删除 ylab("Added Modules") + scale_color_discrete(name = "SPL Techniques") 并将输出保存在变量中,如下所示:

    x <- ggplot(IrisChangeModules, aes(x=Release, y=Added, group=Technique))  + geom_line(aes(linetype = Technique, color=Technique)) + geom_point(aes(color = Technique)) + theme_bw()
    
  2. 然后将修改后的标签和新的图例标题叠加为:

    x+ labs(y = "Added Modules") + scale_fill_discrete(name = "SPL Techniques")
    

这会给你想要的。