2016-05-09 8 views
0

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

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() 

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

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

в качестве альтернативы вы можете использовать только ggplotly() – MLavoie

ответ

0

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

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

enter image description here

+0

О, я не знаю, что вариант. Спасибо. Это решает часть моей проблемы. Теперь мои метки являются позициями мутации dna, такими как 41234470, и даже с этой опцией метки оси получают сокращенно до 41.2M, как если бы это числовое значение. – Gopala

+2

Вы можете использовать 'plot_ly (df, x = x, y = y, mode = 'markers')%>% layout (xaxis = list (type =" category "))', чтобы решить другую проблему. 'ggplotly()' обрабатывает факторы, заставляя значения xaxis быть числовыми, но добавляет метки метки, соответствующие меткам факторов. – royr2

Смежные вопросы