如何使用R平滑曲线?

如何使用R平滑曲线?,r,ggplot2,plot,R,Ggplot2,Plot,我有没有办法平滑这条曲线[附在下面],而不仅仅是连接点?我尝试过使用geom_smooth,但它似乎不能提供我所需要的。我在下面附上了我的代码 energy <- c("Orbital 1 Energy" = "firebrick", "Orbital 2 Energy" = "steelblue") ggplot(Data, aes(x = BondLength)) + geom_line(aes(y

我有没有办法平滑这条曲线[附在下面],而不仅仅是连接点?我尝试过使用geom_smooth,但它似乎不能提供我所需要的。我在下面附上了我的代码

energy  <- c("Orbital 1 Energy" = "firebrick", "Orbital 2 Energy" = "steelblue")
ggplot(Data, aes(x = BondLength)) +
  geom_line(aes(y = TotalEnergy, color = "Orbital 1 Energy"), size = 1.5) +
  geom_line(aes(y = Orbital2, color = "Orbital 2 Energy"), size = 1.5) +
  
  labs(x = "Bond Length (Angstrom)",
       y = "Energy (Hartree)",
       color = "Legend") +
  scale_color_manual(values = energy)  

energy听起来好像在寻找样条曲线。下面是一个使用接近您的数据的工作示例

首先,我们加载我们的库,然后创建一个新的数据框,其中x轴上有许多采样点:

库(样条曲线)
图书馆(GG2)

df
数据在哪里
?如果您不能随意处理正在使用的数据集,我建议您查看一下。根据您想要实现的目标,
stat\u smooth()
可能适合您。否则,您可能希望使用Stibu推荐的方法对数据进行插值。非常感谢!现在它开始工作了。
df$TotalEnergy <- predict(lm(TotalEnergy ~ ns(BondLength, df = 8), Data), df)
df$Orbital2 <- predict(lm(Orbital2 ~ ns(BondLength, df = 8), Data), df)
ggplot(df, aes(x = BondLength)) +
  geom_line(aes(y = TotalEnergy, color = "Orbital 1 Energy"), size = 1.5) +
  geom_line(aes(y = Orbital2, color = "Orbital 2 Energy"), size = 1.5) +
  geom_point(data = Data, aes(y = TotalEnergy), alpha = 0.5) +
  geom_point(data = Data, aes(y = Orbital2), alpha = 0.5) +
  labs(x = "Bond Length (Angstrom)",
       y = "Energy (Hartree)",
       color = "Legend") +
  scale_color_manual(values = energy) +
  theme(panel.grid = element_blank())