Как задать цвет для каждого значения x на трехмерной диаграмме рассеяния в R - PullRequest
0 голосов
/ 15 октября 2019

Мне нужно проанализировать вместе 3 набора данных. Я использую scatterplot3d для анализа этих данных. Мне нужно задать разные цвета для каждого из значений на оси X.

The value on the x axis is Terreno (Soil) and goes from -4 to +6.
The value on the y axis is P.I.
The value on the z axis is PERSE.TOTALI (Total lost).

Я могу создать трехмерную диаграмму рассеяния, но не могу назначить цвет для каждого значения вось х, как мне действовать? Спасибо

    #here are the data I'm trying to plot

    dput(head(dati3,25))
    structure(list(Terreno = c(-4L, -4L, -4L, 5L, -4L, 3L, 6L, -4L,
    5L, -4L, 3L, -4L, 5L, 3L, 5L, -4L, -4L, 3L, -4L, 3L, 3L, -4L,
    -4L, -4L, 3L), P.I. = c(1, 0, 1, 2, 0, 2, 2, 2, 2, 1.5, 2, 1.5,
    1, 2, 1.5, 1, 0, 0, -0.5, 2, 1, 1, 1, 1, 1), PERSE.TOTALI = c(0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0)), row.names = c(NA, 25L), class = "data.frame")



    #this is the code I'm using for the plot

    scatterplot3d(Terreno, P.I., PERSE.TOTALI,pch=16,highlight.3d = T, type="h")

Что я должен вставить в код, чтобы каждое из значений x отображалось другим цветом? Спасибо!

1 Ответ

0 голосов
/ 15 октября 2019

когда вы установите highlight.3d в true, цвет будет автоматическим, и вы не сможете его изменить. хотя если вы хотите использовать цвета, отличные от x, вы можете использовать следующий код:

scatterplot3d(Terreno, P.I., PERSE.TOTALI, pch= 16, type= "h",
              color= as.numeric(as.factor(x)))

color может принимать в качестве аргумента любой вектор с одинаковой длиной данных и разными значениями этоговектор будет давать разные цвета для точек данных, поэтому в приведенном выше коде значения этого вектора взяты из вектора х и равны для равных х. если вы выберете другую палитру цветов, вы можете использовать такой код:

color= palette[as.numeric(as.factor(x)))]

или, может быть, просто:

color= palette[x+5]
...