在ggplot2中绘制两个具有不同x范围限制的函数

时间:2015-11-26 10:01:54

标签: r ggplot2

我用ggplot绘制了线性函数,如下所示:

ggplot(data.frame(x=c(0,320)), aes(x)) +
  stat_function(fun=function(x)60.762126*x-549.98, geom="line", colour="black") +
  stat_function(fun=function(x)-0.431181333*x+2.378735e+02, geom="line", colour="black")+
  ylim(-600,600)

但是,我希望第一个函数被绘制为x范围从0到12,第二个函数被绘制为x范围从12到max(x)。 有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

最简单的方法是首先在 var myimages = db.Images.ToList(); foreach (var img in myimages) { var fileExist = files.FirstOrDefault(x => x.Name.ToString().Equals(img.name)); if (fileExist == null) { db.Images.Remove(img); db.SaveChanges(); } } 来电之外计算您需要的数据。

ggplot

或者您可以首先加入行的数据(如@Heroka所建议),从而产生相同的情节:

fun1 <- function(x) 60.762126 * x - 549.98
dat1 <- data.frame(x = c(0, 12), y = NA)
dat1$y <- fun1(dat1$x)

fun2 <- function(x) -0.431181333 * x + 2.378735e+02
dat2 <- data.frame(x = c(12, 320), y = NA)
dat2$y <- fun2(dat2$x)


ggplot(mapping = aes(x, y)) +
  geom_line(data = dat1) +
  geom_line(data = dat2)

enter image description here