Когда я пытаюсь нанести несколько трасс на разные оси, отображается только последняя.
Во-первых, давайте предположим, что я строю все на одном топоре:
temp <- data.frame(x = c('a','b','c','d','e'),
a = c(1,2,3,4,5),
b = c(10,20,30,40,50),
c = c(.1,.2,.3,.4,.5))
p = plot_ly()
for(l in c('a','b','c')){
x = temp[,'x']
y = temp[, l]
p <- p %>%
add_trace(x = x, y = y)
}
Что у меня есть
Проблема в том, что большие числа подавляют маленькие, и вы не можете сравнивать зеленые столбцы.
Поэтому я решил использовать разные оси, как показано ниже
p = plot_ly()
i=0
for(l in c('a','b','c')){
i=i+1
x = temp[,'x']
y = temp[, l]
p <- p %>%
add_trace(x = x, y = y, yaxis = paste('y',i,sep=''))
}
Что у меня есть
Как вы можете видеть, есть только след для последнего нанесенного топора. Наложение не является проблемой. На изображении ниже я отключил trace2, и на этот раз ничего не строилось.
Ничего не заговорено
Я знаю, что макет может быть проблемой, и я пробовал много разных способов с настройкой, но безрезультатно.
Я собираюсь использовать его с приложением, где пользователь выбирает поля (также динамически генерируемые), которые будут нанесены на график. Для меня так важно, что решение не может предполагать жесткое кодирование имен полей.