2017-05-16 73 views
0

我有4個數據幀存儲一個數字(1到100之間)和一個字符串,可以是'A','B'或'C'。我想按照'A','B','C'的順序用x軸創建一個散點圖,每個數據框的數字在y軸上。對於每個數據幀,散點圖上的點應該不同。使用映射到PlotLy中的分類變量的點繪製散點圖,R?

給你一些想法,在數據幀的格式爲

Name | Number 

A | 2 
A | 4 
B | 5 

我試過以下,但由於某些原因,它增加了,而不是繪製他們一樣是數字。

注意:class.dfdf1,df2df3所基於的原始數據幀。如果可能,我不想使用它。

p <- plot_ly(class.df, x = ~Name, type = 'scatter') %>% 
add_trace(df1, y = ~Number, x = ~Name, mode = 'markers', name = '1') %>% 
add_trace(df2, y = ~Number, x = ~Name, mode = 'markers', name = '2') %>% 
add_trace(df3, y = ~Number, x = ~Name, mode = 'markers', name = '3') 

回答

0

我'嗨也有新的,但希望這可以幫助你,如果我理解你的權利。我創建了三個獨立的數據框。對於這些數據框,我爲該數據框添加了一個具有特定數字的附加列。在ggplot命令中,我用col參數區分顏色。最後我用ggplotly做可愛的東西。我希望我已經正確回答你的問題。

創建100張隨機數1之間 -
Letters <- c("A", "B", "C")
Number <- sample(100, 100) Number2 <- sample(100, 100)
Number3 <- sample(100, 100)
快報AB端部C
獲取100次隨機字母A,B或C
Letter <- sample(Letters, 100, replace = T)
Letter2 <- sample(Letters, 100, replace = T)
Letter3 <- sample(Letters, 100, replace = T)

創建三個dataframes
dat1 <- data.frame("Letter" = Letter, "Number" = Number)
dat2 <- data.frame("Letter" = Letter2, "Number" = Number2)
dat3 <- data.frame("Letter" = Letter3, "Number" = Number3)

顏色爲每個單獨數據幀
dat1$Colour <- "1"
dat2$Colour <- "2"
dat3$Colour <- "3"

綁定所有dataframes
datall <- rbind(dat1,dat2,dat3)
創建ggplot X =信,Y =號,COL =單獨的顏色爲每個數據幀
A <- ggplot(data=datall, aes(x = Letter, y = Number, col = Colour)) + geom_point() + theme_classic()
Ggplotly做魔術
ggplotly(A)

+0

感謝您的回覆,並歡迎來到StackOverflow! :)我想用plotly做到這一點,雖然:( – JsDart