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

ел бы использовать фасеты ggplot2 с plotly, но сталкиваюсь с проблемами с метками оси Y, показывающими значения диапазона Yaxis вместо текстового текста. Есть ли что-то, что я могу изменить в объекте plotly (используя plotly_build), чтобы заставить его правильно отображаться. Мне бы очень хотелось использовать возможности графического наведения в блестящем приложении на ggplots. Я нашел несколько других вопросов, которые связаны с фасетами в сюжете, но большинство, кажется, перенаправляют пользователей на использование сюжетных субплотов вместо ggplot. В моем случае данные фасетов не исчезают, яксис просто разрушается.

Справочный вопрос:Ошибка при построении графика с facet_wrap и scale = "free" in plotly

Смотрите пример кода ниже с набором данных mtcars, который показывает проблемы с фасетами. Если вы посмотрите на объект ggplot, метки верны.

Если я уменьшу количество подзаговоров, например, уменьшу набор данных mtcars до нескольких моделей, проблема, похоже, будет решена. Почему количество подзаголовков влияет на метки яксисов? Кроме того, похоже, что у фасет / групп, которые разбиты, есть только 1 элемент (если это не первый yaxis), фасеты, которые имеют более 1 элемента (по крайней мере, в этом примере), правильно отображают yaxis. Есть ли что-то, что я могу изменить в объекте plotly (используя plotly_build), чтобы заставить его правильно отображаться. Мне бы очень хотелось использовать возможности графического наведения в блестящем приложении на ggplots.

library(plotly)
library(ggplot2)
library(data.table)
library(datasets)

#add fake model for use in facet
dt<-data.table(mtcars)
dt[,car.id:=rownames(mtcars)]
dt[,model:=substr(car.id,1,regexpr(" ",car.id)-1)][model=="",model:=car.id]

#Optional toggle: pick a few models and issue seems to go away 
#Use data=dt[model %in% c("Mazda","Merc","Toyota","Honda","Hornet")]
ggplot.test<-ggplot(dt,aes(mpg,car.id))+geom_point()+facet_grid(model~.,scales="free_y",space="free",drop=TRUE)

#check ggplot in Plots
ggplot.test

#broken ggplotly object in Viewer
ggplotly(ggplot.test)

Участок ggplot:

Тот же сюжет в сюжете, на котором были разбиты ярлыки яксиса

Ответы на вопрос(1)

Ваш ответ на вопрос