【发布时间】:2015-07-02 17:10:17
【问题描述】:
我是 R 中等高线图的新手,我正在尝试创建一个来显示营养浓度随深度和盐度的变化。
我的数据集目前看起来像这样 (link):
> head(DF)
salinity depth silicon
1 32.9 0.00 3.872717
2 32.9 0.00 3.906963
3 32.9 0.00 3.872717
4 33.4 3.56 3.119292
5 33.5 3.56 3.076484
6 33.0 0.00 3.675799
我希望深度在 y 轴上,盐度在 x 轴上,硅浓度根据颜色显示。
根据我的阅读,为了创建等高线图,我需要将当前拥有的数据转换为矩阵(通过创建函数?)。
这是可以实现的吗?我不确定我是否以完全错误的方式进行此操作,但基本上我想要的是这样的(为图像质量道歉):
但是用盐度代替时间,用硅浓度代替温度。
谢谢,
凯兹
复制粘贴数据:
DF <- structure(list(salinity = c(32.9, 32.9, 32.9, 33.4, 33.5, 33,
33, 33.2, 33.3, 33.1, 33.1, 33.1, 33.7, 33.7, 34, 34, 34, 33.6,
34.3, 34.3, 34.8, 35.8, 34.7, 34.4, 34.3, 34.5, 34.4, 34.9, 34.9,
34.9, 34.8, 35, 35, 36, 34.9, 35, 35.2, 35.1, 30.2, 33.4, 34.5,
34.9, 33.4, 33.4, 35.1, 35.1, 34.6, 35.1, 34.43, 34.67, 34.67,
34.96, 34.76, 35.11, 34.14, 34.97, 25.13, 35.16, 35.11, 35.11,
35.11, 35.15), depth = c(0, 0, 0, 3.56, 3.56, 0, 0, 4.493, 4.493,
0, 0, 0, 4.362, 4.362, 9.9, 9.9, 0, 0, 5.826, 5.826, 11.725,
11.725, 11.725, 0, 0, 2.766, 2.766, 9.355, 9.355, 0, 0, 12.46,
12.46, 12.46, 0, 0, 12.427, 12.427, 1.2, 3.6, 6.2, 11, 1.1, 1.1,
4.2, 12.8, 6.9, 10.4, 1.16, 4.5, 4.5, 15.35, 1.13, 8.25, 17.92,
1.05, 14.25, 20.54, 0.97, 0.97, 7.67, 19.6), silicon = c(3.872716895,
3.90696347, 3.872716895, 3.119292237, 3.076484018, 3.675799087, 3.855593607,
3.547374429, 3.299086758, 4.591894977, 4.566210046, 4.857305936, 2.759703196,
2.5456621, 2.597031963, 2.126141553, 2.417237443, 2.331621005, 1.989155251,
1.835045662, 1.946347032, 1.937785388, 1.526826484, 1.638127854, 1.929223744,
1.698059361, 1.894977169, 1.312785388, 1.698059361, 1.329908676, 1.484018265,
1.621004566, 1.175799087, 1.167237443, 1.218607306, 1.038812785, 1.552511416,
1.141552511, 5.329861111, 1.684027778, 2.612847222, 1.840277778, 1.588541667,
1.553819444, 2.682291667, 1.692708333, 1.111111111, 1.935763889, 0.815972222,
1.197916667, 1.197916667, 1.796875, 1.258680556, 1.059027778, 1.25, 0.512152778,
1.336805556, 1.284722222, 0.998263889, 0.928819444, 0.399305556, 1.814236111
)), .Names = c("salinity", "depth", "silicon"), class = "data.frame", row.names = c(NA,
-62L))
编辑:对于任何感兴趣的人,在下面 Frank 的帖子的帮助下,我能够使用我的完整数据集创建以下内容:
【问题讨论】:
-
你能发布你到目前为止所尝试的吗?
-
嗨,老实说,我没能尝试很多。目前,我的数据根本不适合绘制到等高线图中,我不知道如何将其绘制到那里!我认为我需要做的是根据深度/盐度值构建硅值矩阵。
-
问题是硅和盐度是不同的范围(不要重叠)