html条形图显示统计数据,echarts堆叠条形图计算总数()

echart堆叠条形图计算总数

先上图

首先写入一个数据用于最上边总数的展示

option配置如下

option = {

title: {

text: '未处理'

},

tooltip: {

trigger: 'axis',

axisPointer: { // 坐标轴指示器,坐标轴触发有效

type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'

},

formatter: (param, ticket, callback) => {

var str = ''

for (const item of param) {

item.seriesName && (str += item.marker + ' ' + item.seriesName + ':' + item.value + '
')

}

return str

}

},

legend: {

data: ['高危', '中低', '低危'],

right: '20px'

},

grid: {

left: '3%',

right: '4%',

bottom: '3%',

width: '100%',

containLabel: true

},

xAxis: {

data: ['业务系统1', '业务系统1', '业务系统1', '业务系统1', '业务系统1', '业务系统1', '业务系统1']

},

yAxis: {

type: 'value'

},

series: [

{

name: '高危',

type: 'bar',

color: '#F56C6C',

barWidth: 30,

stack: '总量',

label: {

show: true

},

data: [50, 60, 59, 50, 50, 50, 50]

},

{

name: '中低',

type: 'bar',

stack: '总量',

color: '#F5AF45',

barWidth: 30,

label: {

show: true

},

data: [70, 70, 70, 70, 70, 70, 70]

},

{

name: '低危',

type: 'bar',

color: '#8BC663',

stack: '总量',

barWidth: 30,

label: {

show: true

},

data: [70, 70, 70, 70, 70, 70, 70]

},

{

name: '',

type: 'bar',

data: [0,0,0,0,0,0,0,],

color: '#bbf',

stack: '总量',

barWidth: 30,

label: {

show: true,

position: 'top',

color: 'black'

}

}

]

};

效果如图,其中通过formatter进行tooltip的筛选,出现一个总和为0的样式

接着在option外部对数据进行操作,使得最后一项的数据是前三项的总和

var series = option.series

function getSum (params) {

var datavalue = 0

for (var i = 0; i < series.length; i++) {

datavalue += series[i].data[params.dataIndex]

}

return datavalue

}

series[series.length - 1].label.formatter = getSum

myChart.setOption(option)

至此可完成基本效果,

但是 !!但是!!但是

echarts数据还有一个筛选功能,如图:可以将点击高危,使其颜色变为灰色并且不展示,此时还要让总数随之变化

此时需要对数据监听,在点击图标时会触发以下函数,先将回调的函数进行打印可看到如下结果

myChart.on('legendselectchanged', (obj) => {

console.log(obj)

})

也就是selected可查看当前选中状态,而之前的series[i]中的name即为对应的键值,因此只需判断是否存在该点即可将未选择的点过滤掉,接下来在对其进行因此setOption即可

myChart.on('legendselectchanged', (obj) => {

function getSum (params) {

var datavalue = 0

for (var i = 0; i < series.length; i++) {

if (obj.selected[series[i].name]) {

datavalue += series[i].data[params.dataIndex]

}

}

return datavalue

}

series[series.length - 1].label.formatter = getSum

myChart.setOption(option)

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Echarts堆叠条形图的绘制,你可以按照以下步骤进行操作: 1. 安装Echarts库:首先,确保你在项目中已经安装了Echarts库。你可以通过npm或者直接引入CDN来安装。 2. 导入Echarts库:在你的HTML文件中,通过`<script>`标签导入Echarts库的路径。 3. 创建一个容器:在HTML文件中,创建一个`<div>`元素作为容器,用于显示堆叠条形图。 4. 初始化Echarts实例:在JavaScript文件中,使用`echarts.init`方法初始化一个Echarts实例,并将其与上一步创建的容器关联起来。 5. 配置图表选项:通过设置Echarts实例的`setOption`方法,配置堆叠条形图的各种选项,包括数据、样式、坐标轴等。 6. 绘制图表:通过调用Echarts实例的`render`方法,将配置好的选项绘制成堆叠条形图。 下面是一个简单的例子,演示了如何使用Echarts绘制堆叠条形图: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Echarts堆叠条形图</title> <!-- 导入Echarts库 --> <script src="https://cdn.jsdelivr.net/npm/echarts@5.2.2/dist/echarts.min.js"></script> </head> <body> <!-- 创建容器 --> <div id="chartContainer" style="width: 600px; height: 400px;"></div> <script> // 初始化Echarts实例 var chart = echarts.init(document.getElementById('chartContainer')); // 配置图表选项 var option = { title: { text: '堆叠条形图示例' }, tooltip: {}, legend: { data: ['类别1', '类别2', '类别3'] }, xAxis: { data: ['一月', '二月', '三月', '四月', '五月'] }, yAxis: {}, series: [ { name: '类别1', type: 'bar', stack: '总量', data: [120, 132, 101, 134, 90] }, { name: '类别2', type: 'bar', stack: '总量', data: [220, 182, 191, 234, 290] }, { name: '类别3', type: 'bar', stack: '总量', data: [150, 232, 201, 154, 190] } ] }; // 绘制图表 chart.setOption(option); </script> </body> </html> ``` 以上代码演示了一个简单的堆叠条形图示例,你可以根据自己的需求进行配置和调整。希望能对你有所帮助!如果有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值