如何在R语言Plotly堆叠条形图中添加边框?
给Plotly堆叠灰度条形图添加边框的方法
嘿,我来帮你搞定这个边框的问题!在Plotly R里给堆叠条形图加边框其实很简单,核心是利用marker参数里的line属性来定义边框样式。下面给你两种可行的方案:
方案1:逐个trace设置边框
如果你想精准控制每个分类的边框(虽然大部分时候统一样式就够了),可以在每个add_trace里直接添加边框参数:
hplot1 = plot_ly(big, x=~Month, y=~Cyanophyta, type='bar', name='Cyanophyta', color=I("grey95"), marker=list(line=list(color='black', width=1))) %>% add_trace(y=~Chlorophyta, name='Chlorophyta', color=I("grey85"), marker=list(line=list(color='black', width=1))) %>% add_trace(y=~Bacillariophyta, name='Bacillariophyta', color=I("grey75"), marker=list(line=list(color='black', width=1))) %>% add_trace(y=~Dinophyta, name='Dinophyta', color=I("grey55"), marker=list(line=list(color='black', width=1))) %>% add_trace(y=~Cryptophyta, name='Cryptophyta', color=I("grey40"), marker=list(line=list(color='black', width=1))) %>% layout(barmode='stack')
这里的color='black'是边框颜色,width=1是边框粗细,你可以根据需求调整(比如换成深灰色grey20或者把宽度改成2)。
方案2:统一设置所有trace的边框
如果所有分类的边框样式都一样,用style()函数统一设置会更简洁,不用重复写代码:
hplot1 = plot_ly(big, x=~Month, y=~Cyanophyta, type='bar', name='Cyanophyta', color=I("grey95")) %>% add_trace(y=~Chlorophyta, name='Chlorophyta', color=I("grey85")) %>% add_trace(y=~Bacillariophyta, name='Bacillariophyta', color=I("grey75")) %>% add_trace(y=~Dinophyta, name='Dinophyta', color=I("grey55")) %>% add_trace(y=~Cryptophyta, name='Cryptophyta', color=I("grey40")) %>% # 统一给所有条形加边框 style(marker=list(line=list(color='black', width=1))) %>% layout(barmode='stack')
补充说明
如果你的需求是只给整个堆叠的大条形加外边框(而不是每个分段),Plotly没有直接的原生设置,但可以通过一个小技巧实现:计算每个月份的总高度,添加一个透明的底层条形,然后给这个条形加边框。不过一般来说,给每个分段加边框已经能让图表结构很清晰了。
内容的提问来源于stack exchange,提问作者Tatiana Gámez
相关产品推荐
相关产品推荐

