我需要在y轴上的x轴y上的x和在R中的绘图区域中的fx和fy

时间:2017-06-01 06:05:18

标签: r plot labels axis-labels

我需要这种类型的图:

我需要x轴上的x,y轴上的y和ploy区域中的fx和fy。你可以帮我R,即两条曲线相互交叉。我的代码是

   gx <- expand.grid(x=seq(1,5,length=50))
   fx <- function(x) { exp(-x) }
   gx$fx <- apply(gx,1,fx)
   plot(gx, type="l",col="red")

   gy <- expand.grid(y=seq(1,5,length=50))
   fy <- function(y) { y*exp(-y) }
   gy$fy <- apply(gy, 1, fy)
   par(new=TRUE)
   plot(gy, type="l", col="green")

Image

4 个答案:

答案 0 :(得分:2)

不是100%确定我理解这个问题意味着什么,但是如果你想要标记你的轴你可以使用xlab和ylab图形参数:

即:

plot(gx, type="l",col="red", xlab="label for x axis", ylab="label for y axis")

答案 1 :(得分:0)

这是带基数的情节:

plot(gx, type="n", xlab="", ylab="")
for(i in 1:2) lines(get(c("gx", "gy")[i]), col=c("red", "green")[i])
title(xlab="x", ylab="y")

enter image description here

我个人更喜欢做一些数据操作,将数据(gxgy)组合成一个单一的data.frame,使用“dplyr”和“tidyr”包裹:

dat <- data.frame(gx, gy)
dat <- dat %>% 
      gather(xvar, x, x,y) %>% 
      gather(yvar, y, fx, fy)
head(dat)

#   xvar        x yvar         y
# 1    x 1.000000   fx 0.3678794
# 2    x 1.081633   fx 0.3390415
# 3    x 1.163265   fx 0.3124642
# 4    x 1.244898   fx 0.2879703
# 5    x 1.326531   fx 0.2653964
# 6    x 1.408163   fx 0.2445921

这样可以轻松地使用ggplot进行可视化:

ggplot(dat, aes(x,y, col=yvar)) + geom_line()

enter image description here

答案 2 :(得分:0)

使用legendlines函数以及plot会得到下图。

plot(gx,type="l",col="red", xlab ="x", ylab="y")
lines(gy,col="green")
legend("topright", inset=.05, cex = 1, c("f(x)","f(y)"), horiz=TRUE, lty=c(1,1), lwd=c(2,2), col=c("red","green"), text.font=3)

plot

答案 3 :(得分:0)

到目前为止,似乎没有人回答过将f(x)和f(y)放在绘图区域。您可以使用text()执行此操作,但这不是最优雅的解决方案,因为您必须手动提供放置文本的位置坐标。

您提供的数据:

gx <- expand.grid(x=seq(1,5,length=50))
fx <- function(x) { exp(-x) }
gx$fx <- apply(gx,1,fx)

gy <- expand.grid(y=seq(1,5,length=50))
fy <- function(y) { y*exp(-y) }
gy$fy <- apply(gy, 1, fy)

创建情节:

plot(gx,type="l",col="red", xlab ="x", ylab="y")
lines(gy,col="green")
text(x=c(3,2),y=c(0.18,0.1), labels=c("f(y)","f(x)"))

给出这个:

figure with axis and plot area labels

我希望这有帮助!对你的问题感到困惑的部分是当你说你需要相交的线时。这是您的数据和/或您正在应用的功能的问题,而不是我们可以毫不清楚地回答的问题。