如何在R中绘制同时具有x轴和y轴为函数的图形?

3

我有一个函数,

x= (z-z^2.5)/(1+2*z-z^2) 
y = z-z^2.5

如何绘制一张图形,其中z是唯一的变量,x轴显示函数x的值,y轴显示函数y的值,z的范围从0到5

2个回答

2
你可以按照自己的说明得到一个非常基本的情节。最初的回答。
## z ranges from 0 to 5
z = seq(0,5,0.01)

## x and y are functions of z
x = (z-z^2.5)/(1+2*z-z^2)
y = z-z^2.5

##plot
plot(x,y, pch=20, cex=0.5)

最初的回答:
如果您想要一条平滑曲线,那就有点棘手了。在 z = 1 + sqrt(2) ~ 2.414 处,曲线存在不连续性。如果您只画一条曲线,就会出现不必要的线条连接跨越不连续性。因此,需要分成两段来绘制。

x和y的图形

plot(x[1:242],y[1:242], type='l', xlab='x', ylab='y',
    xlim=range(x), ylim=range(y))
lines(x[243:501],y[243:501])

平滑曲线

但是要小心解释这个图。从z=0到z=1,有一些棘手的问题。

最初的回答


我可以使用curve()来绘制它吗,因为我需要一条曲线? - ghost123

1
使用 ggplot2
# z ranges from -1000 to 1000 (The range can be arbitrary)
z = seq(-1000,1000,.25)

# x as a function of z
x = (z-z^2.5) / ((1+2*z)-z^2)

# y as a function of z
y = z-z^2.5

# make a dataframe of x,y and z
df <- data.frame(x=x, y=y, z=z)

# subset the df where z is between 0 and 5
df_5 <- subset(df, (df$z>=0 & df$z<=5))

# plot the graph
library(ggplot2)
ggplot(df_5, aes(x,y))+ geom_point(color="red")

xy as a function of Z

@G5W的回答已经很好了,只需要在你的数据集中使用subset()选择05之间的值进行绘图,并使用ggplot2库即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接