EXTJS Stacked Bar Chart堆叠条形图

本文详细介绍了如何使用EXTJS创建堆叠条形图,包括Json数据的准备,chart与store的绑定,属性设置,特别是axes和series的stack属性配置,以及最终的预览效果展示。

Json数据:


chart绑定store:

往panel内拖入一个bar Chart
创建store,url指定为data2.json,添加name和data1,data2,data3字段,sencha architect自动生成的代码:
Ext.define('MyApp10.store.data2', {
    extend: 'Ext.data.Store',

    requires: [
        'Ext.data.proxy.Ajax',
        'Ext.data.reader.Json',
        'Ext.data.Field'
    ],

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            autoLoad: true,
            autoSync: true,
            storeId: 'data2',
            proxy: {
                type: 'ajax',
                url: 'data/chart/data2.json',
                reader: {
                    type: 'json'
                }
            },
            fields: [
                {
                    name: 'name'
                },
                {
                    name: 'data1'
                },
                {
                    name: 'data2'
                },
                {
                    name: 'data3'
                }
            ]
        }, cfg)]);
    }
});

设置属性:

为chart添加legend;

axes设置:

<span style="white-space:pre">		</span>axes: [
                                {
                                    type: 'Category',
                                    fields: [
                                        'name'
                                    ],
                                    position: 'left',
                                    title: '名称'
                                },
                                {
                                    type: 'Numeric',
                                    fields: [
                                        'data1',
                                        'data2',
                                        'data3'
                                    ],
                                    position: 'bottom',
                                    title: '数据'
                                }
series设置:

  <span style="white-space:pre">			</span>series: [
                                {
                                    type: 'bar',
                                    label: '//{\'display\':\'insideEnd\',\'field\':\'data1+data2+data3\',\'color\':\'#333\',\'text-anchor\':\'middle\'}',
                                    tips: {
                                        trackMouse: true,
                                        width: '60px',
                                        renderer: function(storeItem, item) {
                                            this.setTitle(item.value[1]+ '$');
                                        }
                                    },
                                    axis: 'bottom',
                                    xField: 'name',
                                    yField: [
                                        'data1',
                                        'data2',
                                        'data3'
                                    ],
                                    <pre name="code" class="javascript"><span style="white-space:pre">				</span>stacked: true
} ],


其中series的stack属性为true时效果:


series的stack属性为false时效果:


全部代码

 {
                    xtype: 'panel',
                    height: 514,
                    title: 'StackBarChart',
                    items: [
                        {
                            xtype: 'chart',
                            height: 535,
                            width: 846,
                            animate: true,
                            insetPadding: 20,
                            store: 'data2',
                            axes: [
                                {
                                    type: 'Category',
                                    fields: [
                                        'name'
                                    ],
                                    position: 'left',
                                    title: '名称'
                                },
                                {
                                    type: 'Numeric',
                                    fields: [
                                        'data1',
                                        'data2',
                                        'data3'
                                    ],
                                    position: 'bottom',
                                    title: '数据'
                                }
                            ],
                            series: [
                                {
                                    type: 'bar',
                                    label: '//{\'display\':\'insideEnd\',\'field\':\'data1+data2+data3\',\'color\':\'#333\',\'text-anchor\':\'middle\'}',
                                    tips: {
                                        trackMouse: true,
                                        width: '60px',
                                        renderer: function(storeItem, item) {
                                            this.setTitle(item.value[1]+ '$');
                                        }
                                    },
                                    axis: 'bottom',
                                    xField: 'name',
                                    yField: [
                                        'data1',
                                        'data2',
                                        'data3'
                                    ],
                                    stacked: true
                                }
                            ],
                            legend: {
                                position: 'right'
                            }
                        }
                    ]
                },

预览效果


这个是完整源码 java实现 大数据 Spark 可视化大屏+Kafka+SpringBoot+Vue3 【大数据毕业设计】基于Spark实时社交媒体舆情分析与趋势预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 源码+论文 完整版 数据库Mysql 随着微博、抖音、知乎、小红书等社交媒体平台的快速发展,网络舆情呈现出数据规模大、传播速度快、情绪演化复杂等特点。传统离线批处理方式难以满足舆情监测对时效性的要求,亟需构建一套能够支撑实时采集、流式计算、情感分析与趋势预测的综合系统。本文围绕“基于Spark实时社交媒体舆情分析与趋势预测”课题,设计并实现了一套前后端分离的舆情分析平台。系统后端采用Java语言与Spring Boot框架构建RESTful服务,结合JWT完成管理员身份认证与权限控制;数据处理层引入Spark思想的流式窗口统计与Kafka消息缓冲机制,对社交媒体帖文进行情感倾向识别、热度指数计算和按小时窗口聚合;趋势预测模块基于历史热度序列构建多元线性回归模型,输出未来窗口的热度预测值,并采用RMSE、MAE、MAPE等指标评价预测效果;前端采用Vue3、Vue Router、Pinia、Element Plus与ECharts实现管理后台与数据可视化大屏,支持帖文管理、话题管理、实时舆情查看、趋势对比和个人中心维护等功能。数据库选用MySQL,库名为db_social_opinion,核心业务表均以t_前缀命名,覆盖管理员、用户、平台、话题、帖文、实时统计、预测结果与误差指标等实体。测试结果表明,系统能够稳定完成舆情事件模拟、实时统计刷新与趋势预测展示,界面日期时间统一采用“2026-11-02 17:25:17”格式,满足本科毕业设计对完整性、规范性与可演示性的要求。本文工作对高校舆情教学实验、中小规模舆情监测系统原型开发具有一定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值