如何为Plotly条形图设置虚线或点状的边框样式?
解决代码
import plotly.graph_objects as go data={"years":[2019,2020,2021,2022], "total_value":[100000000000,220000000000,350000000000,410000000000]} def bar_styled(data): blank = 'rgba(0,0,0,0)' colors =["#FED241", "#FED241", "#143DCB", blank] fig = go.Figure(data=[go.Bar( x=data['years'], y=data['total_value'], marker_color=colors, marker_line_width=3 )]) fig.update_layout(title_text=None, paper_bgcolor=blank, height=300, margin={"b":4, "t":4, "l":8, "r":8 }) color_list=fig.data[0]["marker"]["color"] fig.data[0]["marker"]['line']["color"]=['#FED241' if val == blank else blank for val in color_list] fig.update_xaxes(type='category') # 新增:给2022年的柱条添加虚线边框 # 获取2022年柱条的坐标范围 bar_x_pos = 3 # 分类轴x从0开始计数,2022是第4个,索引为3 bar_y_max = data['total_value'][-1] bar_width = 0.4 # 默认柱条宽度,可根据实际调整 fig.add_shape( type="rect", x0=bar_x_pos - bar_width/2, y0=0, x1=bar_x_pos + bar_width/2, y1=bar_y_max, line=dict( color="#FED241", width=3, dash="dot" # 可选dash(虚线)、dot(点状)、dashdot等样式 ), fillcolor=blank ) return fig bar_styled(data)
修改说明
- 由于 Plotly
go.Bar的marker.line属性未开放虚线样式配置,所以采用额外添加矩形形状的方式实现虚线边框效果 - 你可以调整
line.dash的参数修改边框样式,可选值包括dash、dot、dashdot,也可以传入自定义的线段间隔数组 - 如果需要适配不同的柱条宽度,可在
go.Bar中显式设置width参数,保证形状和柱条尺寸完全匹配
内容的提问来源于stack exchange,提问作者Leonardo Ferreira
相关产品推荐
相关产品推荐

