如何在 plot_ly r 图中使用数字变量作为字符

how to use a numeric variable as character in plot_ly r graphs

我对 plotly 很陌生,所以这可能是一个基本问题,我有一个简单的数据框:

id = c("01","02","03","04","05")
value = c(1:5)
data=data.frame(id,value)

当我使用 plot_ly 绘制它时:

require(plotly)
plot_ly(data,x=id,y=value)

plot_ly 认为我的 id 变量是一个数字变量,所以在 x 轴上,我得到毕业 1、1.5、2、2.5 ...这没有意义。

如果我想要 plot_ly 理解我的变量是一个字符,我必须添加一些非数字字符:

data$id = paste0("n",id)
plot_ly(data,x=id,y=value)

这个代码给了我我想要的,但是在我的 id 之前有一个可耻的 "n"。

有什么想法吗?

不用说我使用ggplot没问题。

基于此github issue需要明确指定轴类型。

希望这对您有所帮助。请忽略我之前的错误评论。

library(plotly)

df <- data.frame(x = c("A", "B", "C"),
                 y = 1:3)

# Works fine
plot_ly(df, x = x, y = y, mode = "markers")

# Treated as numeric    
df <- data.frame(x = c("1000", "2000", "3000"),
                 y = 1:3)

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

# Force as a categorical axis
plot_ly(df, x = x, y = y, mode = "markers") %>% layout(xaxis = list(type = "category"))


# Treated as categorical
df <- data.frame(x = c("1000A", "2000B", "3000C"),
                 y = 1:3)

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