微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据更改AmCharts时主题更改

如何解决数据更改AmCharts时主题更改

我在安全带上有问题。 在我的页面上,用户可以更改一些过滤器,并且当更改过滤器(日期,..)时,图表也会更改。此时,我更改图表的数据,删除XYChart的所有系列,然后重新构建所有系列。

但是,当我这样做时,我不知道为什么,但是在创建图表之前我收取的主题发生了变化。 我发现的唯一解决方案是处理图表并重新创建它。但是,如果可能的话,我希望保持不变的主题,而不必重新创建图表,而只是重新创建序列和数据。

这是我的更新功能。 已经创建了图表及其轴,并应用了主题

   update: function (categories,data,granularity,symbol) {
        symbol = symbol || '';
        this._completeData(data,categories);
        var dateAxis = this.chart.xAxes.values[0];
        //Pour changement de granularité
        var baseInterval;
        var groupsInterval;
        var gridInterval;
        switch (granularity) {
            case "hour":
                baseInterval = { timeUnit: "hour",count: 1 };
                groupsInterval = [
                    { timeUnit: "hour",count: 1 },{ timeUnit: "day",count: 1 }
                ];
                break;
            case "month":
                baseInterval = { timeUnit: "month",count: 1 };
                groupsInterval = [
                    {
                        timeUnit: "month",count: 1,},{
                        timeUnit: "year",];
                break;
            case "year":
                baseInterval = { timeUnit: "year",count: 1 };
                groupsInterval = [
                    {
                        timeUnit: "year",];
                break;
            default:
                baseInterval = { timeUnit: "day",count: 1 };
                groupsInterval = [
                    { timeUnit: "day",{
                        timeUnit: "month",];
                break;
        }
        dateAxis.baseInterval = baseInterval;
        dateAxis.groupIntervals.setAll(groupsInterval);
        while (this.chart.series.values.length !== 0) {
            this.chart.series.removeIndex(0).dispose();
        }
        this.chart.data = data;
        this.chart.invalidateData();
        categories.forEach(function (category) {
            if (this.options.typeSeries == 'Line') {
                this._createLineserie(category,symbol);
            }
            else {
                this._createColumnSerie(category,symbol);
            }
        }.bind(this));

要继续使用主题,请创建图表。当有更改时,我更改了数据和系列,但我不知道为什么,但是我使用的第一个主题没有保留。

非常感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。