出于某种原因,当使用ggplot2
geom_bar
函数将plotly
条形图(ggplotly
)转换为交互式地图时,{{ 1}}" force"即使指定了ggplotly
参数,也要粘在一起:
width
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
行为?
答案 0 :(得分:2)
任何想法都告诉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
}