基于行数据的多个系列的XY散点图

时间:2017-06-26 18:57:47

标签: r scatter-plot

我有三列数据(横断面名称,横断面开始的x距离,沿横断面的高程),并希望快速制作一个x-y散点图,其中每个系列都基于横断面名称。我想比较横断面的斜率。

三列数据如下所示:

Transect, X-distance, Elevation
A, 0, 0
A, 1, 2
A, 1, 3
A, 2, 4
B, 0, 0
B, 1, 3
B, 2, 4
C, 0, 0
C, 1, 1

等。大约15个“字母/样条”的数据。总共大约150-200行。

另请注意,每个字母的点数是可变的(介于8到15之间),并且它们不共享任何常见的X或Y(在这种情况下是距离和高程)

我搜索/搜索了“类似的问题”,但没有一个答案似乎与我的数据设置方式相同。它们要么共享相同的X,要么在相邻列中包含系列。

R有没有办法识别第一列中的不同名称并使它们成为不同的系列?

由于

1 个答案:

答案 0 :(得分:1)

我相信这是你想要完成的。你可以在你的美学中使用设置color = Transect进行横断面分组。我添加了geom_line()只是为了帮助可视化斜率。随意排除它。

library(tidyverse)

df <- tribble(
~Transect, ~X_distance, ~Elevation,
'A', 0, 0,
'A', 1, 2,
'A', 2, 3,
'A', 3, 4,
'B', 0, 0,
'B', 1, 3,
'B', 2, 4,
'C', 0, 0,
'C', 1, 1)


ggplot(df, aes(X_distance, Elevation, color = Transect)) +
  geom_point() +
  geom_line()

enter image description here

如果要在保留所有横断面的同时将单个颜色设置为某些组,请添加一个指示分组的其他列。然后,您可以将组参数添加到ggplot美学中。

df <- tribble(
  ~Transect, ~X_distance, ~Elevation, ~grouping,
  'A', 0, 0, 'AB',
  'A', 1, 2, 'AB',
  'A', 2, 3, 'AB',
  'A', 3, 4, 'AB',
  'B', 0, 0, 'AB',
  'B', 1, 3, 'AB',
  'B', 2, 4, 'AB',
  'C', 0, 0, 'C',
  'C', 1, 1, 'C')


ggplot(df, aes(X_distance, Elevation, group = Transect, color = grouping)) +
  geom_point() +
  geom_line()

enter image description here