使用映射到PlotLy,R中的分类变量的点制作散点图?

时间:2017-05-16 18:54:21

标签: r dplyr plotly

我有4个数据框,存储一个数字(1到100之间)和一个字符串,可以是' A' B' B'或' C& #39 ;.我想创建一个带有x轴的散点图,其顺序是' A' B' C' C',每个数据框的编号在y轴上。对于每个数据帧,散点图上的点应该是不同的。

为了给你一些想法,数据框的格式为

Name | Number

 A   |   2
 A   |   4
 B   |   5

我已尝试过以下操作,但出于某种原因,它会添加数字而不是按原样绘制它们。

注意:class.dfdf1df2df3所基于的原始数据框架。如果可能,我不想使用它。

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

1 个答案:

答案 0 :(得分:0)

  

嗨,我也是新人,但希望如果我理解你,这可以帮到你。我创建了三个独立的数据帧。对于这些数据帧,我添加了一个附加列,其中包含该数据帧的特定编号。在ggplot命令中,我将颜色与col参数区分开来。最后我用ggplotly做了一些可爱的东西。我希望我能正确回答你的问题。

     

在1 - 100之间创建100个随机数   Number <- sample(100, 100)
  Number2 <- sample(100, 100)
  Number3 <- sample(100, 100)
  字母A B结束C
  Letters <- c("A", "B", "C")
  获得100次随机字母A,B或C
  Letter <- sample(Letters, 100, replace = T)
  Letter2 <- sample(Letters, 100, replace = T)
  Letter3 <- sample(Letters, 100, replace = T)

     

创建三个数据框
  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"

     

绑定所有数据帧
  datall <- rbind(dat1,dat2,dat3)
  创建ggplot x = Letter,y = Number,col =每个数据帧的单独颜色
  A <- ggplot(data=datall, aes(x = Letter, y = Number, col = Colour)) + geom_point() + theme_classic()
  Ggplotly做魔术
  ggplotly(A)