geom_bar 和 coord_flip 上的 ggplotly 似乎失败了
ggplotly on geom_bar and coord_flip seems to fail
我可以根据需要绘制 geom_bar,但是当我尝试用 ggplotly
函数包装它时,它不起作用。有谁知道让它起作用的技巧吗?
library(ggplot2)
library(plotly)
# My df dataset
a=runif(10, min = 0, max = 1)
b=runif(10, min = -1, max = 0)
df=data.frame("p"=c(a,b),
"g"=rep(c("a","b"),each=10),
"type"=c(letters[1:10],letters[1:10]))
# Build the g plot
g <- ggplot(df,
aes(x = as.factor(type), y = p, fill=g)) +
geom_bar(data=df[df$g == "a",] ,stat = "identity") +
geom_bar( data=df[df$g == "b",] ,stat = "identity") +
coord_flip() +
scale_y_continuous(breaks = seq(-1, 1, 0.25),
labels = paste0(abs(seq(-1, 1, 0.25)))) +
xlab("") +
theme_bw()
# plot it the regular way
g
# plot it the ggplotly way
ggplotly(g)
问题可能在于拆分两个 geom_bar
调用——您实际上不需要执行其中两个。
另请注意 geom_col()
与 geom_bar(stat = "identity")
的作用相同。
试试这个:
g <- df %>%
ggplot(aes(x = type, y = p, fill = g)) +
geom_col() +
coord_flip()
ggplotly(g)
重新添加您的缩放比例等——为了简单起见,我只是放弃了所有其他内容。
我可以根据需要绘制 geom_bar,但是当我尝试用 ggplotly
函数包装它时,它不起作用。有谁知道让它起作用的技巧吗?
library(ggplot2)
library(plotly)
# My df dataset
a=runif(10, min = 0, max = 1)
b=runif(10, min = -1, max = 0)
df=data.frame("p"=c(a,b),
"g"=rep(c("a","b"),each=10),
"type"=c(letters[1:10],letters[1:10]))
# Build the g plot
g <- ggplot(df,
aes(x = as.factor(type), y = p, fill=g)) +
geom_bar(data=df[df$g == "a",] ,stat = "identity") +
geom_bar( data=df[df$g == "b",] ,stat = "identity") +
coord_flip() +
scale_y_continuous(breaks = seq(-1, 1, 0.25),
labels = paste0(abs(seq(-1, 1, 0.25)))) +
xlab("") +
theme_bw()
# plot it the regular way
g
# plot it the ggplotly way
ggplotly(g)
问题可能在于拆分两个 geom_bar
调用——您实际上不需要执行其中两个。
另请注意 geom_col()
与 geom_bar(stat = "identity")
的作用相同。
试试这个:
g <- df %>%
ggplot(aes(x = type, y = p, fill = g)) +
geom_col() +
coord_flip()
ggplotly(g)
重新添加您的缩放比例等——为了简单起见,我只是放弃了所有其他内容。