R图垂直剖面图

R图垂直剖面图,r,plot,profile,R,Plot,Profile,我测量了CH4浓度随深度的变化: df <- structure(list(Depth = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 15L, 16L, 17L), .Label = c("0", "10", "12", "14", "16", "18", "2", "20", "22", "24", "26", "28", "30", "32", "4", "6", "8", "AR"), clas

我测量了CH4浓度随深度的变化:

df <- structure(list(Depth = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 15L, 16L, 17L), .Label = c("0", "10", 
"12", "14", "16", "18", "2", "20", "22", "24", "26", "28", "30", 
"32", "4", "6", "8", "AR"), class = "factor"), Conc_CH4 = c(4.30769230769231, 
23.1846153846154, 14.5615384615385, 21.1769230769231, 16.2615384615385, 
132.007692307692, 5.86923076923077, 389.353846153846, 823.023076923077, 
948.684615384615, 1436.56923076923, 1939.88461538462, 26.2769230769231, 
27.5538461538462, 19.6461538461538)), .Names = c("Depth", "Conc_CH4"
), row.names = c(NA, -15L), class = "data.frame")

df这是一个具有基本绘图功能的解决方案(您可以反转
ylim
的限制):


df$Depth为什么不将
Depth
转换为数字和绘图

ggplot(transform(df, Depth=as.numeric(as.character(df$Depth))),
                 aes(x=Conc_CH4, y=Depth)) +
    geom_line() + scale_y_reverse()
as.numeric(as.character(…)
是因为您的
Depth
是一个因子,调用
as.numeric
直接将不同于字符的因子转换为字符串

scale\u y\u reverse
反转y比例

如果实际数据的深度为“AR”,则必须忽略它们或以其他方式处理它们


在“df”中缺少一个分组变量,没有?嗯,我只有这些。你的意思是我应该创建一个,或者它看起来缺少一个?如果它只是一个测量值,只需按照“深度”排序“df”。Marc,通过使用
as.numeric
我们失去了
Depth
的原始值。Marc,这真的很整洁,正是我想要的。我希望可以选择两个答案,但另一个答案使用了
ggplot2
,这是我通常用于绘制数据的包。非常感谢,酷!我学会了两个技巧:如何重新排列原来是字符的数字因子,以及如何使用
缩放y\u reverse()
。谢谢
ggplot(transform(df, Depth=as.numeric(as.character(df$Depth))),
                 aes(x=Conc_CH4, y=Depth)) +
    geom_line() + scale_y_reverse()