如何为Plotly绘制的条形图添加边框?
为Plotly条形图添加边框的实现方法
我绘制了如下条形图,希望为其添加边框,请问该如何实现?
用户原有代码:
import pandas as pd import plotly.express as px data = {'Programming Languages': ['Python', 'C#', 'Java', 'Ruby', 'C++', 'C', 'JavaScript', 'PHP', 'TypeScript', 'Haskell', 'Closure', 'Kotlin'], 'Responses': [12,11,10,5,3,2,2,1,1,1,1,1]} df = pd.DataFrame(data, columns = ['Programming Languages', 'Responses']) df = df.sort_values(by='Responses', ascending=True) fig = px.bar(df, x='Responses', y='Programming Languages', color_discrete_sequence=["black"]) fig.update_layout({'plot_bgcolor': 'rgba(0, 0, 0, 0)'}, font=dict(size=15)) fig.write_image("../images/pl2.pdf") fig.show()
遗憾的是,由于该图表是PDF文件,我无法粘贴展示。
解决方案
要给条形添加边框,只需通过update_traces()方法配置条形标记的边框属性即可:
- 使用
marker.line.color定义边框颜色 - 使用
marker.line.width定义边框宽度(单位:像素)
修改后的完整代码:
import pandas as pd import plotly.express as px data = {'Programming Languages': ['Python', 'C#', 'Java', 'Ruby', 'C++', 'C', 'JavaScript', 'PHP', 'TypeScript', 'Haskell', 'Closure', 'Kotlin'], 'Responses': [12,11,10,5,3,2,2,1,1,1,1,1]} df = pd.DataFrame(data, columns = ['Programming Languages', 'Responses']) df = df.sort_values(by='Responses', ascending=True) fig = px.bar(df, x='Responses', y='Programming Languages', color_discrete_sequence=["black"]) # 新增:设置条形边框 fig.update_traces(marker=dict(line=dict(color='white', width=2))) fig.update_layout({'plot_bgcolor': 'rgba(0, 0, 0, 0)'}, font=dict(size=15)) fig.write_image("../images/pl2.pdf") fig.show()
说明
- 示例中用白色边框搭配黑色条形,你可以根据需求修改
color值(比如'gray'、'#222222'等) - 调整
width数值可以改变边框粗细,数值越大边框越明显
内容的提问来源于stack exchange,提问作者Geanderson Esteves
相关产品推荐
相关产品推荐

