Мне нужно построить линию с дискретным цветом для каждого компонента сегмента, чтобы получить следующий фрейм данных:
head(profilo1, 10)
dx TPI DEM
1 0 5 2159.219
2 2 5 2157.735
3 4 5 2156.269
4 6 5 2154.752
5 8 5 2153.282
6 10 5 2151.925
7 12 5 2150.660
8 14 3 2149.402
9 16 3 2148.277
10 18 2 2147.149
dx и DEM - это x и y, а TPI - это атрибут цвета (от 1:10), который мне нужно связать с цветом. Я хочу использовать цветовую таблицу из RColorBrewer (например, парную).
Пока я ищу решение, я считаю полезным это
color_paired = brewer.pal(n = 10, "Paired")
plot(profilo1$dx, profilo1$DEM,t='p',
xlab = "Profile distance (m)",
ylab = "Elevation (m.s.l.m)",
col = color_paired[profilo1$TPI], cex= .3)
Но я предпочитаю указывать линию.





Вы можете получить это, сначала создав пустой график, а затем используя функцию segements.
library(RColorBrewer)
color_paired=brewer.pal(n = 10, "Paired")
plot(profilo1$dx,profilo1$DEM, xlab = "Profile distance (m)",
ylab = "Elevation (m.s.l.m)", type = "n")
segments(head(profilo1$dx, -1), head(profilo1$DEM, -1),
profilo1$dx[-1], profilo1$DEM[-1],
col=color_paired[head(profilo1$TPI, -1)])
profilo1 = read.table(text = "dx TPI DEM
1 0 5 2159.219
2 2 5 2157.735
3 4 5 2156.269
4 6 5 2154.752
5 8 5 2153.282
6 10 5 2151.925
7 12 5 2150.660
8 14 3 2149.402
9 16 3 2148.277
10 18 2 2147.149",
header=TRUE)
Прохладный!! Спасибо, fz!