如何绘制点之间的曲线
How to plot a curve line between points
我正在寻找一个允许我在点之间绘制曲线的函数。实际上,我的数据是元素(这里是氮)的分布浓度,我需要绘制一条在点之间弯曲的虚线。
所以这是我想用 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))
这是我得到的情节
你能帮帮我吗?
获得平滑线而不是直线的一种方法是在您的美学中翻转 x
和 y
,然后应用 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)
我正在寻找一个允许我在点之间绘制曲线的函数。实际上,我的数据是元素(这里是氮)的分布浓度,我需要绘制一条在点之间弯曲的虚线。
所以这是我想用 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))
这是我得到的情节
你能帮帮我吗?
获得平滑线而不是直线的一种方法是在您的美学中翻转 x
和 y
,然后应用 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)