我有三列数据(横断面名称,横断面开始的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有没有办法识别第一列中的不同名称并使它们成为不同的系列?
由于
答案 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()
如果要在保留所有横断面的同时将单个颜色设置为某些组,请添加一个指示分组的其他列。然后,您可以将组参数添加到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()