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

时间:2016-05-09 09:49:01

标签: r graph 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)

这段代码给了我我想要的东西,但在我的身份之前有一个令人讨厌的“n”。

有什么想法吗?

没用说我使用ggplot没问题。

1 个答案:

答案 0 :(得分:3)

基于此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")