[英]R plotly: How to keep width parameter of ggplot2 geom_bar() when using ggplotly()
出于某些原因,在R中使用plotly
的ggplotly
函数将ggplot2
条形图( geom_bar
)转换为交互式图时,即使指定了width
参数, ggplotly
“强制”这些条形物粘在一起:
library(plotly)
library(ggplot2)
DF <- read.table(text="Rank F1 F2 F3
1 500 250 50
2 400 100 30
3 300 155 100
4 200 90 10", header=TRUE)
library(reshape2)
DF1 <- melt(DF, id.var="Rank")
p <- ggplot(DF1, aes(x = Rank, y = value, fill = variable)) +
geom_bar(stat = "identity")
ggplotly(p)
p <- ggplot(DF1, aes(x = Rank, y = value, fill = variable)) +
geom_bar(stat = "identity", width = 0.4)
ggplotly(p)
由于某种原因,它也颠倒了ggplot2
的默认颜色顺序(尽管将顺序保留在图例中...),但是我可以解决这个问题。
有什么好主意告诉ggplotly
不要像默认的ggplot2
行为那样把我的酒吧粘在一起吗?
有什么好主意告诉ggplotly不要像默认的ggplot2行为那样把我的酒吧粘在一起吗?
ggplotly设置bargap
到0
,你可以设置为通过您的所需值layout
ggplotly(p) %>% layout(bargap=0.15)
由于某种原因,它也反转了ggplot2s的默认颜色顺序(尽管将顺序保留在图例中...),但是我可以处理。
让我们也修复它。 之后,您可以通过翻转条形和反转图例来更改顺序。
gp <- ggplotly(p) %>% layout(bargap = 0.15, legend = list(traceorder = 'reversed'))
traces <- length(gp[['x']][[1]])
for (i in 1:floor(traces / 2)) {
temp <- gp[['x']][[1]][[i]]
gp[['x']][[1]][[i]] <- gp[['x']][[1]][[traces + 1 - i]]
gp[['x']][[1]][[traces + 1 - i]] <- temp
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.