R 中的 Plot.ly:x 轴不需要的字母排序

mcc*_*dar 8 javascript r rstudio plotly

我尝试了几个小时,但没有成功。我的数据框很简单

df <- as.data.frame(matrix(c("g","d","a","b","z",5,4,3,2,1),5,2))

library("plotly")
p <- plot_ly(data = df,x = ~V1,y = ~V2,type = "scatter",mode = "lines+markers") %>%
layout(title = "my title")
p
Run Code Online (Sandbox Code Playgroud)

所以,这给我

我的情节

但我不希望 x 轴按字母顺序排序,我只想保持原样并看到递减的图表。

mto*_*oto 6

首先,矩阵只能保存类的数据。因此,您有一个要转换为 的字符串矩阵data.frame。因为默认情况下stringAsFactors = TRUE,您的字符矩阵会转换为data.frameof factor,其中两列的级别默认已排序。按字母顺序排列V1,并按递增顺序排列V2

如果您不希望直接修改数据以从源头上解决问题 - 正如其他答案中指出的那样,您也可以通过以下方式使用内部的参数plotlycategoryorder =layout()

library(plotly)
xform <- list(categoryorder = "array",
              categoryarray = df$V1)

plot_ly(data = df,
        x = ~V1,
        y = ~V2,
        type = "scatter",
        mode = "lines+markers") %>%
        layout(title = "my title",
               xaxis = xform)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述