带有虚线或虚线边框的条形图 - 如何实现?

莱昂纳多·费雷拉

我正在尝试创建一个如下图所示的条形图: 我要重现的图表

我快到了,但我没有找到任何关于设置虚线或虚线边框样式的参考;

下面是我创建的图表的图片:

到目前为止我做的图表



我将在下面添加一个最小的可重现代码:

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 color can be a single color value or an iterable
        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')
    
    return fig

bar_styled(data)

非常感谢有关我如何实现这一点的任何参考或帮助;

提前谢谢你们,问候,莱昂纳多

德里克·奥

根据这个 Plotly 论坛帖子,条形图无法设置线条样式 - 我查看fig.data[0]["marker"]['line']了类型的对象plotly.graph_objs.bar.Marker并且没有允许您设置线条样式的属性

但是,您可以绘制空白条,以便显示 xaxis 刻度,然后使用Plotly 形状在其周围绘制一个具有所需样式的矩形。

当您使用fig.add_shape在条形图上绘制矩形时,第一个条形的中心的 x 坐标将为 0.0,第二个条形的中心为 1.0,依此类推...这意味着中间对应于 2022 的 bar 将位于 x-coordinate 3.0

由于条形的默认宽度为 0.8,这意味着您在绘制矩形时需要传递x0 = 2.6, x1 = 3.4fig.add_shape您还可以将矩形的线条样式指定为dash

import plotly.graph_objects as go

data={"years":[2019,2020,2021,2022],
      "total_value":[100000000000,220000000000,350000000000,410000000000]}

## this only works if the year occurs once in the data
def get_plotly_xcoordinates(year, width=0.8):
    x_location = data["years"].index(year)
    print(x_location)
    return x_location - width/2, x_location + width/2

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 color can be a single color value or an iterable
        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]
    x0,x1 = get_plotly_xcoordinates(2022)

    fig.add_shape(type="rect", xref="x", yref="y",
        x0=x0, y0=0,
        x1=x1, y1=410000000000,
        line=dict(color="#FED241",dash="dash",width=3)
    )

    fig.update_xaxes(type='category')
    
    return fig

fig = bar_styled(data)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

图表如何在条形图上的特定条形图之间添加垂直虚线?

如何创建带有虚线边框的圆形svg进度栏

如何生成带有截断条形的条形图图?

Nativescript图表如何显示带有负值的条形图

AndroidPlot:XYPlot如何制作带有圆角的条形图

如何创建带有圆圈的条形图?

如何创建带有多个分组条形图?

如何实现条形图的日期范围

熊猫条形图的边线到虚线

matplotlib条形图黑色-如何删除条形边框

matplotlib条形图黑色-如何删除条形边框

如何导入带有虚线路径的模块?

如何设置带有不规则条形图的Hightcharts柱形图

如何删除非常细的条形图轮廓/边框

我如何创建渐变虚线边框?

如何增加虚线边框点之间的空间

如何在CSS中倾斜虚线边框?

如何使用Amchart 4绘制带有空数据的条形图?

如何在 matplotlib 或 seaborn 中创建带有系列的堆积条形图?

如何在python中使用matplotlib在python中绘制带有标签的简单条形图?

如何使用MPAndroidChart创建带有分组条形图的BarChart?

熊猫:如何用带有标签的数据框绘制条形图?

如何在Excel中创建带有数据点的条形图?

Vega-Lite-如何在每个nar中绘制带有标签的堆叠条形图?

如何在geom_histogram中包含带有NA的条形图?

如何制作带有嵌套分组变量的堆积条形图?

如何在带有多个x轴的python中创建条形图

如何创建带有浮动条的条形图以显示时间范围?

如何在android中实现如下所示的条形图或条形图