Я хотел бы понять, как я могу получить plotly::ggplotly
, чтобы сохранить метки оси x и не преобразовывать их в числовые значения c? Я преобразовал столбец в моем data.frame
, используемом для меток x-axis
, в символы, чтобы убедиться, что они не являются факторами . Происходит следующее:
- На первом графике ниже (
ggplot
) правильно отображаются метки оси X. - При использовании объекта
ggplot
выше, plotly::ggplotly
вызывается, и в результате этого метки оси X отображаются неправильно (как цифры c значения). - Третий график показывает те же данные, нанесенные с использованием
plotly
напрямую (то есть не с использованием plotly::ggplotly
); это показывает правильные результаты.
Я хотел бы знать, как я могу получить plotly::ggplotly
для правильного отображения меток оси X?
Я кое-что искал, но ничего не нашел.
Вот некоторые ключевые версии (пакеты, ОС и т. Д. c.):
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
[1] plotly_4.9.0
[1] ggplot2_3.3.0
Правильные метки оси X
library(dplyr)
### Convert "Species" column to character (i.e. ensure it is NOT a factor).
iris.v2 <- iris %>% dplyr::mutate(Species = as.character(Species))
str(iris.v2)
### Shows that Species is a "chr" type.
# 'data.frame': 150 obs. of 5 variables:
# $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
# $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
# $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
# $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
# $ Species : chr "setosa" "setosa" "setosa" "setosa" ...
### Correct x-axis labeling: Plot data using ggplot.
plt.iris <-
iris.v2 %>%
ggplot2::ggplot(aes(as.character(Species), Petal.Width)) +
ggplot2::geom_boxplot()
plt.iris
Неправильные метки оси X
### Incorrect x-axis labeling: plot above plot with ggplotly.
pltly.iris <-
plotly::ggplotly(plt.iris)
pltly.iris
### Correct x-axis labeling: Plot data using plotly directly.
native.pltly.iris <-
plotly::plot_ly(iris.v2, x = ~Species, y = ~Petal.Width, type = "box")
native.pltly.iris
Правильные метки оси X