Плотная тепловая карта в r — col и метки строк не соответствуют результирующей диаграмме

#r #plotly

#r #плоская

Вопрос:

Я взял простой пример тепловой карты plotly и попытался изменить горизонтальные и вертикальные метки результирующей тепловой карты.

     plot_ly(
  x = c("aaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbb", "ccccccccccccccccccccccccc"), 
  y = c("rrrrrrrrrrrrrrrrrrrrrrrrrrr", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "fffffffffffffffffffffffffffffffff"),
  z = m, type = "heatmap") %>%
  layout(yaxis = list(autorange = "reversed"))
 

Но вертикальные метки кажутся очень неструктурированными, чего я ожидаю. Сверху у меня должно быть r, затем u и f. Вместо этого у меня есть u, r, f. Что я делаю не так?

Как я могу сохранить порядок для строк и столбцов таким же, как я определил в x и y.

Ответ №1:

Вы могли бы использовать autorange = "reversed" :

 library(plotly)
plot_ly(
  x = c("a", "b", "c"), y = c("r", "u", "f"),
  z = m, type = "heatmap") %>%
  layout(yaxis = list(autorange = "reversed"))
 

Что дает:

введите описание изображения здесь

Комментарии:

1. Когда я использую это для своего решения, где у меня довольно длинные метки x и y, noRows = noCols = 7, это не работает… Это странно.

2. @martinkabe Пожалуйста, предоставьте воспроизводимый пример вашей ситуации, чтобы я мог изучить его (в идеале dput() , ваши данные)

3. Что за версию пакета вы используете? Я почти уверен, что это проблема с самой новой, поскольку она не работает и для меня.

4. @Jimbou Скорее всего, я не обновился до последней версии, поскольку это потребовало бы от меня пересмотра множества ранее созданных графиков, входящих в состав сложных панелей мониторинга. Я все еще использую v3.6.0 . Я думаю, может быть, вам или оператору следует открыть проблему?

5. Я использую версию plotly_4.5.2. Теперь я использую d3heatmap, и он работает нормально. Но даже d3heatmap не является хорошей идеей в ioslides_presentation — карта d3heatmap видна на предыдущем слайде… Похоже, у нас есть две проблемы…