Как я могу построить большой набор данных с ggplotly - PullRequest
0 голосов
/ 26 июня 2019

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

. Я попытался расплавить набор данных и построить соответствующий график.

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

YellowBloodVar <- ncol( AEDPlotSG %>% #117
  select(starts_with("Y_Bld")))
YellowCleanVar <- ncol( AEDPlotSG %>% #3
  select(starts_with("Y_Cl")))

RedBloodVar <- ncol( AEDPlotSG %>% #88
  select(starts_with("R_Bld")))
RedCleanVar <- ncol( AEDPlotSG %>% #1
  select(starts_with("R_Cl")))
GreenBloodVar <- ncol( AEDPlotSG %>% #83
  select(starts_with("G_Bld")))
GreenCleanVar <- ncol( AEDPlotSG %>% #7
  select(starts_with("G_Cl")))
BlueBloodVar <- ncol( AEDPlotSG %>% #41
  select(starts_with("B_Bld")))
BlueCleanVar <- ncol( AEDPlotSG %>% #159
  select(starts_with("B_Cl")))
PulpBloodVar <- ncol( AEDPlotSG %>% #92
  select(starts_with("P_Bld")))
PulpCleanVar <- ncol( AEDPlotSG %>% #7
  select(starts_with("P_Cl")))

AEDDataMelt <- data.frame( melt(AEDPlotSG, id.vars = 'Wavelength', variable = 'series'))
MyLineType <- rep.int(2,((YellowBloodVar+YellowCleanVar+RedBloodVar+RedCleanVar+GreenBloodVar+GreenCleanVar+BlueBloodVar+BlueCleanVar+PulpBloodVar+PulpCleanVar)))

#Add linetype 1 (solid) as indication of mean value and calculate the lenght of the array------------------------------------------------
MyLineType <- append(MyLineType,c(1,1),after = length(MyLineType))

#MyColorsData <- rep.int("black",(length(PlotData[1, 2:(ncol(PlotData))])))
MyColorsYellowBlood <- rep.int("lightgoldenrod4",YellowBloodVar)
MyColorsRedBlood    <- rep.int("red4",RedBloodVar)
MyColorsGreenBlood  <- rep.int("green4",GreenBloodVar)
MyColorsBlueBlood   <- rep.int("blue",BlueBloodVar)
MyColorsPulpBlood   <- rep.int("antiquewhite",PulpBloodVar)


MyColorsYellowClean <- rep.int("lightgoldenrod1",YellowCleanVar)
MyColorsRedClean    <- rep.int("red",RedCleanVar)
MyColorsGreenClean  <- rep.int("green",GreenCleanVar)
MyColorsBlueClean   <- rep.int("cadetblue1",BlueCleanVar)
MyColorsPulpClean   <- rep.int("antiquewhite3",PulpCleanVar)


MyColors <- c(MyColorsYellowClean, MyColorsRedClean, MyColorsGreenClean, MyColorsBlueClean, MyColorsPulpClean, MyColorsYellowBlood,
                  MyColorsRedBlood,MyColorsGreenBlood,MyColorsBlueBlood,MyColorsPulpBlood, "red", "blue")

Q <- ggplot(AEDDataMelt) +
  geom_line(aes(Wavelength, value, colour = series, linetype = series)) +
  # First n lines are of one type, last line is reference and should be different--------------------------------------------------------
  scale_linetype_manual(values = MyLineType)+
  # First six lines are from the brewer pallette, last one a custom colour-----------------------------------------------
  scale_colour_manual(values = c(MyColors))



ggplotly(Q) %>%
 layout(
    xaxis = list(
      dtick = (BandwidthWavelength/100),
      tick0 = (CenterWavelength - BandwidthWavelength),
      tickmode = "linear"
))

Создано в 2019-06-26 с помощью пакета Представить (v0.3,0)

...