【问题标题】:How to plot a curve line between points如何在点之间绘制曲线
【发布时间】:2018-03-25 18:47:45
【问题描述】:

我正在寻找一个可以在我的点之间绘制曲线的函数。实际上,我的数据是一种元素(这里是氮)的分布浓度,我需要绘制一条在点之间弯曲的虚线。 所以这是我想用 R 做什么的图像(我用 Excel 制作了这个配置文件

library(ggplot2)
Sample <- c(-1, -3, -5, -7, -9, -11, -13, -15, -17, -19, -21, -23, -25, -27, 
            -29, -31, -33, -35, -37)
N <- c(0.14, 0.16, 0.09, 0.09, 0.011, 0.09, 0.10, 0.09, 0.11, 0.11, 0.09, 0.09,
       0.05, 0.09, 0.09, 0.10, 0.11, 0.11, 0.11)
tab <- data.frame(N, Sample)
ggplot(tab,  aes(x=N,  y=Sample,  c(0, 0.16)), pch=17) + 
  geom_path(linetype=3, color='#2980B9',  size = 0.1) +
  geom_point(color='#2980B9',  size = 2) +
  scale_x_continuous(position = "top",  limits=c(0, 0.16)) +
  scale_y_continuous(limits=c(-40, 0))

这是我得到的情节

你能帮帮我吗?

【问题讨论】:

  • N 的第 5 个元素不应该是 0.11 吗?现在是0.011,它在情节中给出了奇怪的结果。检查您的数据!
  • stackoverflow.com/questions/34473292/… 的可能副本——尽管该解决方案看起来相当广泛,让我相信一定有更简单的方法
  • 是的,这是 0.11 而不是 0.011,谢谢

标签: r curve dotted-line


【解决方案1】:

获得平滑线而不是直线的一种方法是在您的美学中翻转xy,然后应用geom_smooth 而不是geom_path,然后通过coord_flip 翻转坐标:

ggplot(tab, aes(x=Sample, y=N, c(0,0.16)),pch=17) + 
coord_flip() + 
geom_point(color='#2980B9', size = 2) + 
geom_smooth(method = "loess", se = FALSE, 
          span = 0.25, linetype=3,color='#2980B9', size = 0.1)

【讨论】:

  • @nico 如果它解决了您的问题,请记得接受答案。
猜你喜欢
  • 2017-02-18
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 2023-04-03
  • 2022-08-22
  • 2013-12-19
相关资源
最近更新 更多