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

XY scatter plot with multiple series based on row data

我有三列数据(横断面名称、距横断面起点的 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 "letters/transects" 的数据价值。总共约 150-200 行。

另请注意,每个字母的点数是可变的(在 8 到 15 左右之间)并且它们不共享任何共同的 X 或 Y(在本例中为距离和海拔)

我 googled/searched "similar questions" 但 none 的答案似乎与我的数据设置方式相同。它们要么共享相同的 X,要么在相邻的列中具有系列。

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

谢谢

我相信这就是您想要完成的。您可以使用设置 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()

如果您想在保留所有样带的同时为某些组设置单独的颜色,请添加一个额外的列来指示分组。然后,您可以将组参数添加到您的 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()