R图垂直剖面图
我测量了CH4浓度随深度的变化: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
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()