Ряды как серия Plotly R - PullRequest
       16

Ряды как серия Plotly R

0 голосов
/ 18 сентября 2018

У меня есть фрейм данных:

df<-data.frame(Level=c("Small","Bigger","Biggest"),Threshold1=c(0.9,.8,.7),Threshold2=c(0.4,.5,.6),Threshold3=c(.6,.2,.1))

Я хочу создать графику, как показано ниже, но с использованием графика:

enter image description here

Как бы вы прочитали это для построения графика и осуществления этого?

Я пробовал вращаться, используя t (), и просмотрел документацию для графика, но не увидел ничего о способе использования строк в качестве серии изначение столбца идентификатора в виде имени серии.

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

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Раствор в базе R:

library(plotly)

df<-data.frame(Level=c("Small","Bigger","Biggest"),
               Threshold1=c(0.9,.8,.7),Threshold2=c(0.4,.5,.6),Threshold3=c(.6,.2,.1))

df.reshaped <- reshape(df, varying = c("Threshold1", "Threshold2", "Threshold3"), 
                            v.names = "Values", idvar = "Level", direction = "long", 
                            times = c("Threshold1", "Threshold2", "Threshold3"), 
                            new.row.names = 1:(3 * nrow(df)))

plot_ly(df.reshaped, x=~time, y=~Values, type = 'scatter', mode = 'lines',  color = ~Level)

Выходной участок:

enter image description here

0 голосов
/ 18 сентября 2018

Это проще, если вы используете data.table:

library(data.table)
library(plotly
df<-data.table(Level=c("Small","Bigger","Biggest"),Threshold1=c(0.9,.8,.7),Threshold2=c(0.4,.5,.6),Threshold3=c(.6,.2,.1))

d <-melt.data.table(df, id.vars='Level')
plot_ly(d, x=~variable, y=~value,type = 'scatter', mode = 'lines',  color = ~Level)

Вы должны получить желаемый график. Chart

...