apache / echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://echarts.apache.org
Apache License 2.0
60.09k stars 19.6k forks source link

[Bug] series-candlestick.markPoint. symbolRotate support the Callback func, But actually NOT! #17000

Closed ggz21s closed 3 months ago

ggz21s commented 2 years ago

Version

4.8.0

Link to Minimal Reproduction

No response

Steps to Reproduce

The Official documents says, "Callback is supported since 4.8.0 ." BUT I test it doesn't work!

Code like below:

series: [{
            name: this.id,
            type: 'candlestick',
            data: this.klines,
            itemStyle: {
                color: Color.Red,
                color0: Color.Green,
                borderColor: Color.Red,
                borderColor0: Color.Green
            },
            markPoint: {
                symbol: function (value, params) {
                    var trade_type = params.data.trade_type;
                    if (trade_type === TradeType.OPEN_LONG
                        || trade_type === TradeType.OPEN_SHORT) {
                        return "arrow"
                    }
                    if (trade_type === TradeType.CLOSE_LONG
                        || trade_type === TradeType.CLOSE_SHORT) {
                        return "diamond"
                    }
                },
                // symbolRotate: -90,  // 负数为顺时针旋转!
                // https://www.jianshu.com/p/9030e06f3fce  #拐点利用箭头显示当时风向
                // symbolRotate: 官方说从4.8.0版本支持回调函数,但测试结果没用啊!
                symbolRotate: function (value, params) {
                    // var trade_type = params.data.trade_type;
                    // if (trade_type === TradeType.CLOSE_LONG
                    //     || trade_type === TradeType.OPEN_SHORT) {
                    //     return 180 // 图标翻转180°
                    // }
                    return 180    // **没效果,根本就不支持回调!**
                },
                symbolSize: 15,
                label: {
                    // 可以设置很多参数,默认就好!
                    formatter: function (params) {
                        // return "";
                        return params.data.desc;
                    }
                },
                itemStyle: {
                    color: Color.Yellow
                },
                data: this.tradePoints
            },
}

Current Behavior

When i set symbolRotate: func() { ... } It does do work, BUT symbol not rotate actully.

Expected Behavior

Like upstair...

Environment

- OS: Linux X86_64 CentOS
- Browser: Python3 QT5 Gui
- Framework: Intellij IDEA

from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from PyQt5.QtCore import QUrl

Any additional comments?

No response

plainheart commented 2 years ago

This is a bug in fact. markPoint supports the callback function for symbolRotate, it's only for a single data item though, which is less useful. It's better to support this callback function at the component level. (Not the same issue)

It seems to be working for me. Demo

github-actions[bot] commented 3 months ago

This issue has been automatically marked as stale because it did not have recent activity. It will be closed in 7 days if no further activity occurs. If you wish not to mark it as stale, please leave a comment in this issue.

github-actions[bot] commented 3 months ago

This issue has been automatically closed because it did not have recent activity. If this remains to be a problem with the latest version of Apache ECharts, please open a new issue and link this to it. Thanks!