Plotly R:像 Tableau 一样在条形图中创建分隔线

Plotly R: create dividers in bar plot like Tableau

我有这个数据框:

df = data.frame(
  Period = c("FY2015", "FY2015", "FY2015", "FY2015", "FY2015", "FY2015", "FY2016", "FY2016", 
              "FY2016", "FY2016", "FY2016", "FY2016"),
  Region = c("Africa", "Asia", "Australia", "Europe", "North America", "South America", 
             "Africa", "Asia", "Australia", "Europe", "North America", "South America"),
  Revenue = c(1.0e+07, 2.0e+07, 7.0e+07, 1.2e+08, 1.5e+08, 6.0e+07, 8.0e+06, 1.6e+07, 5.6e+07, 
              9.6e+07, 1.2e+08, 4.8e+07))

我想要一个 plotly 条形图除以 Region,就像我在 Tableau 中做的那样 here。

这里有什么提示吗?

我不知道完全自动的方法,但我们可以通过制作小平面、移除它们之间的填充并在边界处添加垂直线来伪造它。

在这种情况下,有两个离散的类别(“FY2015”和“FY2016”),ggplot 在后台将它们视为值 1 和 2。默认的条形宽度和填充意味着这些面板的边缘是在右侧 0.4 和右侧 2.6。

library(ggplot2)
library(plotly)

my_plot <- ggplot(df, aes(Period, Revenue)) +
  geom_col() +
  geom_vline(xintercept = c(0.4, 2.6), size = 0.2, color = "gray70") +
  facet_wrap(~Region, nrow = 1) +
  theme_minimal() +
  theme(panel.grid.major.x = element_blank(),
        panel.spacing = unit(0, "cm"))

ggplotly(my_plot)