名称参数图 Barplot
Names Argument Plotly Barplot
所以我在 Shiny 中使用 Plotly 来创建条形图。但是 x 标签不是唯一的,例如(狗两次):
设 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
如何手动更改 plotly barplot 中的 x 标签?
谢谢
直接的官方方法:
对 xaxis
使用 tickmode
、tickvals
和 ticktext
参数 layout
:
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
交互
所以我在 Shiny 中使用 Plotly 来创建条形图。但是 x 标签不是唯一的,例如(狗两次):
设 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
如何手动更改 plotly barplot 中的 x 标签?
谢谢
直接的官方方法:
对 xaxis
使用 tickmode
、tickvals
和 ticktext
参数 layout
:
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