名称参数Plotly Barplot

时间:2016-07-12 11:12:12

标签: r label shiny bar-chart plotly

所以我在Shiny中使用Plotly来创建一个条形图。但是,x标签不是唯一的(例如,Dog两次):

让df为:

x     y
1     Dog
2     Cat
3     Dog
3     Ant
4     Bee

我希望绘制所有行,但由于x列中重复的变量Dog,这不会起作用:

p = plot_ly(df, x = df[,2],  y = df[,1], type = "bar", marker = list(color = toRGB("blue")))
p

所以我想通过这样做: 我可以通过删除x参数来绘制所有5行。然后我希望能够单独修改这些名称以填充x列变量。

p = plot_ly(df,  y = x, type = "bar", marker = list(color = toRGB("blue")))
p

如何手动更改绘图条形图中的x标签?

谢谢

1 个答案:

答案 0 :(得分:2)

直截了当的官方方法:

使用tickmode中的tickvalsticktextlayout个参数xaxis

library(plotly)
plot_ly(df, y = x, type = "bar", 
        marker = list(color = toRGB("blue"))) %>% 
         layout(xaxis = list(tickmode = "array",
                             tickvals = 0:4,
                             ticktext = c("Dog", "Cat", "Dog", "Ant", "Bee")))

我不确定上述命令中的y = x在其他类型的情节中如何推广。因此,我推荐这种方法:

# change the y labels (I assigned "a", "b" etc.) 
df$y <- letters[1:nrow(df)]


df %>% plot_ly(x = y,  y = x, type = "bar", 
               marker = list(color = toRGB("blue"))) %>% 
               layout(xaxis = list(tickmode = "array",
                                   tickvals = c("a", "b", "c", "d", "e"),
                                   ticktext = c("Dog", "Cat", "Dog", "Ant", "Bee")))

短暂黑客:

只需在第二次出现dog时添加一个空格:

df$y <- as.character(df$y)
df[3,2] <- "Dog "

然后您可以使用第一个绘图命令:

plot_ly(df, x = df[,2],  y = df[,1], type = "bar", marker = list(color = toRGB("blue")))

我检查了两种方法的情节,它们看起来一样。 显然,你的真实应用可能不是那么简单,黑客可能不会成为可行。

另外,您可以随时使用ggplot2,然后使用plotly::ggplotly

让您的情节互动