实在无助开播求指导。extjs柱状图柱子的大小怎么设置。

由于突击进入项目中,使用的是未曾使用的extjs技术。工作是解决bug.

其中一个bug 优化柱状图的宽度。

这是需要优化的图:



这是我尝试之后的效果








    // 面板
    var pChart = Ext.create('Ext.panel.Panel', {
                width : '100%',
                height : 515,
                bodyStyle : 'border:0', // 针对panel
                layout : 'fit',
                items : [{
                    xtype : 'chart',
                    store : MainTransworkStore,
                    animate : true,
                    legend : {
                        position : 'bottom'
                    },
                    listeners: {    //柱状图数据刷新以后,如果有数据存在,则默认执行点击第一个柱的操作(高亮显示选中的柱)
                        'click': function(chart) {
                        }
                    },
                    shadow : true,
                    axes : [{
                                type : 'Numeric',
                                position : 'left',
                                id:'emissions',
                                grid : {
                                    even : {
                                        fill : '#ccc'
                                    }
                                },
                                minimum : 0,
                                fields : ['value'],
                                grid : {
                                    odd : {
                                        stroke : '#555'
                                    },
                                    even : {
                                        stroke : '#555'
                                    }
                                }
                            }, {
                                type : 'Category',
                                position : 'bottom',
                                // 将坐标轴的下的标签字体旋转90度
                                label : {
                                    rotate : {
                                        degrees : -0
                                    }
                                },
                                fields : ['time']
                            }],
                    series : [{
                        type : 'column',
                        axis : 'left',
                        xField : 'time',
                        yField : 'value',
                        highlight : true,
                        showInLegend : true,
                        id : 'average',
                        title : '排放量',
                        renderer : function(sprite, storeItem, barAttr, i,
                                store) {
                            this.setTitle(Ext.getCmp("enterComb").getValue());
                            barAttr.fill = colors[i % colors.length];


                            barAttr.width = 100;  //使用这句话,可以达到缩小宽度的效果,但是坐标不一致


                            return barAttr;
                        },
                        tips : {
                            trackMouse : true,
                            width : 100,
                            height : 20,
                            renderer : function(storeItem, item, barAttr) {
                                this.setTitle(storeItem.get('value')+ storeItem.get('unit'));
                            }

                        },
                        // 柱子上显示数据
                        label : {
                            display : 'insideEnd',
                            color : '#333',
                            'text-anchor' : 'middle',
                            field : ['value'],
                            renderer : Ext.util.Format.numberRenderer('0')
                        }
                    }]

                }]

            });

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是ExtJS整合Echarts实现柱状图,并实现柱状图点击事件的示例代码: ```javascript // 定义ExtJS的store var store = Ext.create('Ext.data.Store', { fields: ['name', 'value'], data: [ { name: 'Mon', value: 120 }, { name: 'Tue', value: 200 }, { name: 'Wed', value: 150 }, { name: 'Thu', value: 80 }, { name: 'Fri', value: 70 }, { name: 'Sat', value: 110 }, { name: 'Sun', value: 130 } ] }); // 定义Echarts的option var option = { xAxis: { type: 'category', data: store.collect('name') }, yAxis: { type: 'value' }, series: [{ data: store.collect('value'), type: 'bar' }] }; // 定义ExtJS的panel var panel = Ext.create('Ext.panel.Panel', { width: 600, height: 400, renderTo: Ext.getBody(), layout: 'fit', items: [{ xtype: 'chart', store: store, axes: [{ type: 'numeric', position: 'left', fields: ['value'], title: { text: 'Value', fontSize: 15 }, grid: true }, { type: 'category', position: 'bottom', fields: ['name'], title: { text: 'Name', fontSize: 15 } }], series: [{ type: 'bar', xField: 'name', yField: 'value', listeners: { itemclick: function(series, item, event) { // 点击事件处理 console.log(item.record.get('name') + ': ' + item.record.get('value')); } } }] }], listeners: { afterrender: function() { // 渲染Echarts var chart = this.down('chart'); chart.setOption(option); } } }); ``` 在上述代码中,我们首先定义了一个ExtJS的store,用于存储数据。然后定义了Echarts的option,包括x轴、y轴和series。接着定义了一个ExtJS的panel,包含一个chart组件,用于显示Echarts图表。在chart组件中,我们定义了x轴、y轴和series,并添加了一个itemclick事件监听器,用于处理柱状图的点击事件。最后,在panel的afterrender事件中,我们渲染了Echarts图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值