如何在 R 中绘制多元函数
How to plot multivariate function in R
我正在尝试绘制以下函数:
这是我目前尝试过的:
curve(7*x*y/( e^(x^2+y^2)))
但我收到以下错误:
你的e表示指数函数。在r中,指数函数代码为exp()
。所以你可以修改这段代码。
curve(7*x*y/(exp(x^2+y^2)))
绘图的一种方法是使用 contour()
函数。此外,正如@Sang won kim 指出的那样,exp()
是 e^(...)
的函数
x <- seq(from = 0.01, to = 2.1, by = 0.01)
y <- x
multi_var_fx <- function (x, y) {
7 * x * y / (exp(x^2 + y^2))
}
z <- outer(x, y, multi_var_fx)
contour(x, y, z, xlab = 'x', ylab = 'y')
由 reprex package (v0.3.0)
于 2019-10-27 创建
您可以像这样创建等高线图:
library(tidyverse)
tibble(x = seq(0, 10, 0.1), # define the drawing grid
y = seq(0, 10, 0.1)
) %>%
cross_df() %>% # create all possible combinations of x and y
mutate(z = 7*x*y/(exp(x^2+y^2)) ) %>% # add your function
ggplot(aes(x = x, y = y, z = z)) + # create the plot
geom_contour()
我正在尝试绘制以下函数:
这是我目前尝试过的:
curve(7*x*y/( e^(x^2+y^2)))
但我收到以下错误:
你的e表示指数函数。在r中,指数函数代码为exp()
。所以你可以修改这段代码。
curve(7*x*y/(exp(x^2+y^2)))
绘图的一种方法是使用 contour()
函数。此外,正如@Sang won kim 指出的那样,exp()
是 e^(...)
x <- seq(from = 0.01, to = 2.1, by = 0.01)
y <- x
multi_var_fx <- function (x, y) {
7 * x * y / (exp(x^2 + y^2))
}
z <- outer(x, y, multi_var_fx)
contour(x, y, z, xlab = 'x', ylab = 'y')
由 reprex package (v0.3.0)
于 2019-10-27 创建您可以像这样创建等高线图:
library(tidyverse)
tibble(x = seq(0, 10, 0.1), # define the drawing grid
y = seq(0, 10, 0.1)
) %>%
cross_df() %>% # create all possible combinations of x and y
mutate(z = 7*x*y/(exp(x^2+y^2)) ) %>% # add your function
ggplot(aes(x = x, y = y, z = z)) + # create the plot
geom_contour()