如何使用Plotly绘制邮件发送与点击数据的微重叠柱状图?
调整方案
你只需要修改barmode参数,同时给两个柱子序列设置差异化宽度即可实现微重叠效果,修改后的完整代码如下:
Emails <- c("g", "o", "m") Sent <- c(20, 24, 33) Clicked <- c(12, 18, 29) data <- data.frame(Emails, Sent, Clicked) library(plotly) fig <- plot_ly(data, x = ~Emails, y = ~Sent, type = 'bar', name = 'Sent', marker=list(color="#556361"), # 底层发送量柱子宽度稍大 width = 0.6, hoverinfo = ~paste(Emails, Sent)) fig <- fig %>% add_trace(y = ~Clicked, name = 'Clicked', marker=list(color="#A72608"), # 上层点击量柱子宽度稍小,不会完全挡住底层 width = 0.45, hoverinfo = ~paste(Emails, Clicked)) # 把barmode从stack改为overlay实现重叠 fig <- fig %>% layout(yaxis = list(title = 'Count'), barmode = 'overlay') fig
修改说明
- 将原代码中
barmode = 'stack'改为barmode = 'overlay',开启柱子重叠模式 - 给发送量(Sent)柱子设置稍大的宽度(示例用0.6),点击量(Clicked)柱子设置稍小的宽度(示例用0.45),你可以根据自己的视觉需求调整两个宽度的数值,控制重叠程度
- 修正了原代码中
hoverinfo的写法,添加~符号保证提示信息和每行数据正确绑定
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

