Skip to content

[Bug] 瀑布图总计维度上负值柱子绘制问题 #4229

@kkxxkk2019

Description

@kkxxkk2019

Version

2.0.6

Link to Minimal Reproduction

NA

Steps to Reproduce

  1. 缩减瀑布图
{
    "direction": "vertical",
    "type": "common",
    "color": [
        "#1A82EB",
        "#53B589",
        "#F5A25E",
        "#18ADED",
        "#857CE1",
        "#F1C649",
        "#898A91",
        "#EE75B4",
        "#77B165",
        "#029EB5"
    ],
    "series": [
        {
            "type": "waterfall",
            "stack": true,
            "calculationMode": "decrease",
            "bar": {
                "state": {
                    "hover": {
                        "stroke": "#000",
                        "lineWidth": 1
                    }
                }
            },
            "label": {
                "visible": true,
                "position": "inside",
                "style": {
                    "lineHeight": "100%",
                    "lineWidth": 1,
                    "fontSize": 16,
                    "fontWeight": "bold",
                    "pickMode": "imprecise"
                },
                "overlap": {
                    "strategy": []
                },
                "smartInvert": true,
                "formatConfig": {},
                "interactive": true
            },
            "totalLabel": {
                "visible": true,
                "position": "withChange",
                "overlap": false,
                "clampForce": false,
                "formatConfig": {
                    "fixed": 0,
                    "content": "value"
                },
                "style": {
                    "lineHeight": "100%",
                    "lineWidth": 1,
                    "fill": "#1F2329",
                    "stroke": "#ffffff",
                    "fontSize": 16,
                    "fontWeight": "bold",
                    "pickMode": "imprecise"
                },
                "interactive": true,
                "alwayCalculateTotal": true
            },
            "stackLabel": {
                "visible": false
            },
            "direction": "vertical",
            "xField": "_editor_dimension_field",
            "yField": "_editor_value_field",
            "dataId": "waterfall",
            "id": "series-waterfall",
            "seriesField": "_editor_type_field",
            "total": {
                "type": "field",
                "tagField": "_editor_waterfall_total",
                "valueField": "_editor_waterfall_total_value"
            }
        }
    ],
    "legends": [
        {
            "id": "legend-discrete",
            "visible": false,
            "autoPage": false,
            "position": "start",
            "interactive": false,
            "item": {
                "label": {
                    "style": {
                        "fill": "#1F2329",
                        "fontSize": 16,
                        "lineWidth": 1
                    }
                }
            },
            "_originalVisible": true
        }
    ],
    "region": [
        {
            "id": "region-0",
            "stackInverse": true
        }
    ],
    "tooltip": {
        "visible": true,
        "mark": {
            "content": [
                {}
            ],
            "title": {}
        },
        "dimension": {
            "content": [
                {}
            ],
            "title": {}
        },
        "enterable": true,
        "showDelay": 0,
        "style": {
            "maxContentHeight": "95%"
        }
    },
    "axes": [
        {
            "orient": "left",
            "id": "axis-left",
            "type": "linear",
            "label": {
                "autoLimit": false,
                "autoHide": true,
                "style": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                },
                "formatConfig": {},
                "_originStyle": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                }
            },
            "domainLine": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "tick": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "grid": {
                "visible": false,
                "style": {
                    "stroke": "#bbbfc4"
                }
            },
            "autoIndent": false,
            "sampling": true,
            "maxWidth": null,
            "maxHeight": null
        },
        {
            "orient": "bottom",
            "id": "axis-bottom",
            "type": "band",
            "label": {
                "autoLimit": false,
                "autoHide": true,
                "style": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                },
                "formatConfig": {},
                "_originStyle": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                }
            },
            "domainLine": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                },
                "onZero": true
            },
            "tick": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "grid": {
                "visible": false,
                "style": {
                    "stroke": "#bbbfc4"
                }
            },
            "autoIndent": false,
            "sampling": true,
            "maxWidth": null,
            "maxHeight": null,
            "trimPadding": false,
            "paddingInner": [
                0.2,
                0
            ],
            "paddingOuter": [
                0.2,
                0
            ]
        }
    ],
    "data": [
        {
            "id": "waterfall",
            "sourceKey": "total",
            "values": [
                {
                    "_editor_value_field": 30,
                    "_editor_type_field": "标签 1",
                    "_editor_dimension_field": "总计",
                    "_editor_type_field_waterfall_raw": 30,
                    "_editor_dimension_field_waterfall_raw": "总计"
                },
                {
                    "_editor_value_field": 30,
                    "_editor_type_field": "标签 1",
                    "_editor_dimension_field": "new column 4",
                    "_editor_type_field_waterfall_raw": 30,
                    "_editor_dimension_field_waterfall_raw": "new column 4"
                },
                {
                    "_editor_value_field": 40,
                    "_editor_type_field": "标签 2",
                    "_editor_dimension_field": "总计",
                    "_editor_type_field_waterfall_raw": 40,
                    "_editor_dimension_field_waterfall_raw": "总计"
                },
                {
                    "_editor_value_field": -3,
                    "_editor_type_field": "标签 2",
                    "_editor_dimension_field": "new column 3",
                    "_editor_type_field_waterfall_raw": -3,
                    "_editor_dimension_field_waterfall_raw": "new column 3"
                },
                {
                    "_editor_value_field": 30,
                    "_editor_type_field": "标签 2",
                    "_editor_dimension_field": "new column 4",
                    "_editor_type_field_waterfall_raw": 30,
                    "_editor_dimension_field_waterfall_raw": "new column 4"
                },
                {
                    "_editor_value_field": 50,
                    "_editor_type_field": "标签 3",
                    "_editor_dimension_field": "总计",
                    "_editor_type_field_waterfall_raw": 50,
                    "_editor_dimension_field_waterfall_raw": "总计"
                },
                {
                    "_editor_value_field": 2,
                    "_editor_type_field": "标签 3",
                    "_editor_dimension_field": "new column 4",
                    "_editor_type_field_waterfall_raw": 2,
                    "_editor_dimension_field_waterfall_raw": "new column 4"
                },
                {
                    "_editor_value_field": "e",
                    "_editor_type_field": "标签 4",
                    "_editor_dimension_field": "总计",
                    "_editor_waterfall_total": true
                },
                {
                    "_editor_value_field": 3,
                    "_editor_type_field": "标签 4",
                    "_editor_dimension_field": "new column 4",
                    "_editor_type_field_waterfall_raw": 3,
                    "_editor_dimension_field_waterfall_raw": "new column 4"
                }
            ],
            "fields": {
                "_editor_dimension_field": {
                    "domain": [
                        "类别",
                        "总计",
                        "new column 3",
                        "new column 4",
                        "_editor_waterfall_total"
                    ],
                    "sortIndex": 0
                }
            }
        }
    ],
    "labelLayout": "region",
    "markLine": [],
    "totalLabel": {
        "alwayCalculateTotal": true
    },
    "padding": 0,
    "animation": false
}
  1. 累积瀑布图
{
    "direction": "vertical",
    "type": "common",
    "color": [
        "#0A345E",
        "#18ADED",
        "#A6A7AD",
        "#1A82EB",
        "#74CEF4",
        "#E1E2E4",
        "#138ABE",
        "#76B4F3",
        "#898A91",
        "#0E688E"
    ],
    "series": [
        {
            "type": "waterfall",
            "stack": true,
            "calculationMode": "increase",
            "bar": {
                "state": {
                    "hover": {
                        "stroke": "#000",
                        "lineWidth": 1
                    }
                }
            },
            "label": {
                "visible": true,
                "position": "inside",
                "style": {
                    "lineHeight": "100%",
                    "lineWidth": 1,
                    "fontSize": 16,
                    "fontWeight": "bold",
                    "pickMode": "imprecise"
                },
                "overlap": {
                    "strategy": []
                },
                "smartInvert": true,
                "formatConfig": {},
                "interactive": true
            },
            "totalLabel": {
                "visible": true,
                "position": "withChange",
                "overlap": false,
                "clampForce": false,
                "formatConfig": {
                    "fixed": 0,
                    "content": "value"
                },
                "style": {
                    "lineHeight": "100%",
                    "lineWidth": 1,
                    "fill": "#1F2329",
                    "stroke": "#ffffff",
                    "fontSize": 16,
                    "fontWeight": "bold",
                    "pickMode": "imprecise"
                },
                "interactive": true,
                "alwayCalculateTotal": true
            },
            "stackLabel": {
                "visible": false
            },
            "direction": "vertical",
            "xField": "_editor_dimension_field",
            "yField": "_editor_value_field",
            "dataId": "waterfall",
            "id": "series-waterfall",
            "seriesField": "_editor_type_field",
            "total": {
                "type": "field",
                "tagField": "_editor_waterfall_total",
                "valueField": "_editor_waterfall_total_value"
            }
        }
    ],
    "legends": [
        {
            "id": "legend-discrete",
            "visible": false,
            "autoPage": false,
            "position": "start",
            "interactive": false,
            "item": {
                "label": {
                    "style": {
                        "fill": "#1F2329",
                        "fontSize": 16,
                        "lineWidth": 1
                    }
                }
            },
            "_originalVisible": true
        }
    ],
    "region": [
        {
            "id": "region-0",
            "stackInverse": true
        }
    ],
    "tooltip": {
        "visible": true,
        "mark": {
            "content": [
                {}
            ],
            "title": {}
        },
        "dimension": {
            "content": [
                {}
            ],
            "title": {}
        },
        "enterable": true,
        "showDelay": 0,
        "style": {
            "maxContentHeight": "95%"
        }
    },
    "axes": [
        {
            "orient": "left",
            "id": "axis-left",
            "type": "linear",
            "label": {
                "autoLimit": false,
                "autoHide": true,
                "style": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                },
                "formatConfig": {},
                "_originStyle": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                }
            },
            "domainLine": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "tick": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "grid": {
                "visible": false,
                "style": {
                    "stroke": "#bbbfc4"
                }
            },
            "autoIndent": false,
            "sampling": true,
            "maxWidth": null,
            "maxHeight": null
        },
        {
            "orient": "bottom",
            "id": "axis-bottom",
            "type": "band",
            "label": {
                "autoLimit": false,
                "autoHide": true,
                "style": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                },
                "formatConfig": {},
                "_originStyle": {
                    "fill": "#1F2329",
                    "fontSize": 16,
                    "lineWidth": 1
                }
            },
            "domainLine": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                },
                "onZero": true
            },
            "tick": {
                "visible": true,
                "style": {
                    "stroke": "#000000"
                }
            },
            "grid": {
                "visible": false,
                "style": {
                    "stroke": "#bbbfc4"
                }
            },
            "autoIndent": false,
            "sampling": true,
            "maxWidth": null,
            "maxHeight": null,
            "trimPadding": false,
            "paddingInner": [
                0.2,
                0
            ],
            "paddingOuter": [
                0.2,
                0
            ]
        }
    ],
    "data": [
        {
            "id": "waterfall",
            "sourceKey": "total",
            "values": [
                {
                    "_editor_value_field": 4,
                    "_editor_type_field": "数值 1",
                    "_editor_dimension_field": "标签 1",
                    "_editor_type_field_waterfall_raw": 4,
                    "_editor_dimension_field_waterfall_raw": "标签 1"
                },
                {
                    "_editor_value_field": 23,
                    "_editor_type_field": "数值 1",
                    "_editor_dimension_field": "标签 3",
                    "_editor_type_field_waterfall_raw": 23,
                    "_editor_dimension_field_waterfall_raw": "标签 3"
                },
                {
                    "_editor_value_field": 3,
                    "_editor_type_field": "数值 2",
                    "_editor_dimension_field": "标签 1",
                    "_editor_type_field_waterfall_raw": 3,
                    "_editor_dimension_field_waterfall_raw": "标签 1"
                },
                {
                    "_editor_value_field": 3,
                    "_editor_type_field": "数值 2",
                    "_editor_dimension_field": "标签 2",
                    "_editor_type_field_waterfall_raw": 3,
                    "_editor_dimension_field_waterfall_raw": "标签 2"
                },
                {
                    "_editor_value_field": 5,
                    "_editor_type_field": "数值 2",
                    "_editor_dimension_field": "标签 3",
                    "_editor_type_field_waterfall_raw": 5,
                    "_editor_dimension_field_waterfall_raw": "标签 3"
                },
                {
                    "_editor_value_field": "e",
                    "_editor_type_field": "总计",
                    "_editor_dimension_field": "标签 3",
                    "_editor_waterfall_total": true
                }
            ],
            "fields": {
                "_editor_dimension_field": {
                    "domain": [
                        "类别",
                        "标签 1",
                        "标签 2",
                        "标签 3",
                        "_editor_waterfall_total"
                    ],
                    "sortIndex": 0
                }
            }
        }
    ],
    "labelLayout": "region",
    "markLine": [],
    "totalLabel": {
        "alwayCalculateTotal": true
    },
    "padding": 0,
    "animation": false
}

Current Behavior

期望负值柱子应该向下生长

实际 期望
Image Image
Image Image

Expected Behavior

如上

Environment

- OS:
- Browser:
- Framework:

Any additional comments?

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions