如何在ggplot中的散点图上绘制函数
How to draw a function on a scatter plot in ggplot
我想绘制一个函数——例如一条线——在散点图中。我已经编写了分别执行这两项操作的代码,但是如何将它们组合起来呢?我的实验返回了错误消息。
我的代码如下:
library(ROSE)
data(hacide)
train <- hacide.train
散点图
ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4)
行
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609), colour = "blue" , size = 2)
但是如何将线与散点图叠加/组合呢?
这是你要找的吗?
ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609), colour = "blue" , size = 2)+
geom_point(data = train, aes(x1, x2, colour = cls), size = 3, alpha = 0.4)
最简单的方法就是将函数添加到原始图中。 ggplot2
中的图表是分层构建的,这意味着您可以在构建图表时随时添加更多层。
对于您的代码,您可以这样做:
library(ROSE)
data(hacide)
train <- hacide.train
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609),
colour = "blue" , size = 2)
或将其添加到现有地块:
library(ROSE)
data(hacide)
train <- hacide.train
plot = ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4)
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
plot + stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609),
colour = "blue" , size = 2)
我想绘制一个函数——例如一条线——在散点图中。我已经编写了分别执行这两项操作的代码,但是如何将它们组合起来呢?我的实验返回了错误消息。
我的代码如下:
library(ROSE)
data(hacide)
train <- hacide.train
散点图
ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4)
行
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609), colour = "blue" , size = 2)
但是如何将线与散点图叠加/组合呢?
这是你要找的吗?
ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609), colour = "blue" , size = 2)+
geom_point(data = train, aes(x1, x2, colour = cls), size = 3, alpha = 0.4)
最简单的方法就是将函数添加到原始图中。 ggplot2
中的图表是分层构建的,这意味着您可以在构建图表时随时添加更多层。
对于您的代码,您可以这样做:
library(ROSE)
data(hacide)
train <- hacide.train
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4) +
stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609),
colour = "blue" , size = 2)
或将其添加到现有地块:
library(ROSE)
data(hacide)
train <- hacide.train
plot = ggplot(train, aes(x1, x2, colour = cls)) +
geom_point(size = 3, alpha = 0.4)
db <- function(x, beta1, beta2, alpha){-alpha/beta2 - x * beta1/beta2}
plot + stat_function(fun = db, args = list(-1.642354, -1.596056, -6.004609),
colour = "blue" , size = 2)