首页 > 解决方案 > 使用系数在ggplot中绘制曲线

问题描述

我有曲线的系数,想在 ggplot2 中绘制曲线。我的公式只是一个多项式:

y = a * x^2 + b * x + c  

我有这些系数:

a <-  0.000000308  
b <- -0.0168  
c <-  437  

我不知道这些点是否会落在这条线附近,但假设我们正在绘制这个 df:

df <- data.frame(group = c("a", "b", "c"), 
                 x_variable = c(20000, 32000, 48000), 
                 y_variable = c( 175,  200, 250))  

这是我尝试过的:

ggplot(df, aes(x = x_variable, y = y_variable)) + 
 geom_point() +
 # this next line doesn't work, is it close?
 # geom_smooth(method = 'lm', formula = y ~ 0.000000308 * x^2 + -0.0168 * x + 437)    

标签: rggplot2

解决方案


一种选择是使用stat_functionwhich 沿x适合绘图区域的值网格应用函数:

ggplot(df, aes(x = x_variable, y = y_variable)) + 
  geom_point() +
  stat_function(fun = function(x){0.000000308 * x^2 + -0.0168 * x + 437})

在此处输入图像描述


推荐阅读