Plotly R:当每个x因子水平存在两个值时,无法得到点

时间:2016-05-17 19:01:56

标签: r plotly

我有一个这样的数据框:

dput(df)
structure(list(x = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 
4L, 5L), .Label = c("41197708", "41223094", "41244000", "41244435", 
"41244936"), class = "factor"), y = c(1, 1, 1, 1, 1, 2, 2, 2, 
2, 2)), .Names = c("x", "y"), row.names = c(NA, -10L), class = "data.frame")

尝试使用以下点打印散点图:

plot_ly(df, x = levels(x), y = y, mode = 'markers')

我只看到对应于y = 1而不是y = 2的点。任何想法为什么?

以下在plotly中工作,但它将x轴值视为数字/连续(不是我想要的):

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

1 个答案:

答案 0 :(得分:2)

这不是previous question的副本,与此github issue相关吗?

  

目前,您需要手动指定您具有分类   轴。

plot_ly(df, x = x, y = y, mode = "markers") %>% layout(xaxis = list(type = "category"))
     

现在我们只是将因子级别作为字符串发送给   plotly.js

     

plotly_build(plot_ly(df, x = x, y = y, mode = "markers"))$data[[1]]$x

     

基于这些字符串,plotly.js(正确)认为你想要一个   数字轴。将来,我们应该设置更智能的轴类型默认值   基于变量映射。

如果你这样做:

plot_ly(df, x = x, y = y, mode = "markers") %>% 
      layout(xaxis = list(type = "category"))

你会得到:

enter image description here