Plotly R преобразует уровни числовых факторов в числовые значения

У меня есть базовый фрейм данных, подобный этому, и я пытаюсь построить x против y на графике. По какой-то причине он преобразует мои значения x в числовые (непрерывная шкала) и графики вместо того, чтобы сохранять их как факторы. Любая идея, почему он это сделал, и что я могу сделать, чтобы заставить его вести себя по-другому (правильно)?

df <- data.frame(x = c(1, 2, 4, 8, 16, 32), y = 1:6)
df$x <- as.factor(df$x)

str(df)
'data.frame':   6 obs. of  2 variables:
 $ x: Factor w/ 6 levels "1","2","4","8",..: 1 2 3 4 5 6
 $ y: int  1 2 3 4 5 6

levels(df$x)
[1] "1"  "2"  "4"  "8"  "16" "32"

Построение с ggplotчто, очевидно, делает правильно:

library(ggplot2)
ggplot(df, aes(x = x, y = y)) + geom_point()

Построение с plotly R, который рассматривает х как непрерывное значение:

library(plotly)
plot_ly(df, x = x, y = y, mode = 'markers')

1 ответ

Если вы хотите, чтобы он работал как ggplot2, вы можете принудительно заставить переменную x отображать метки фактора:

library(plotly)
plot_ly(df, x = labels(x), y = y, mode = 'markers')

Другие вопросы по тегам