echarts 柱状图
效果:
图一:Y轴显示百分比 柱状图定点显示数量个数

图二:x轴 相同日期对应的每个柱子显示不同类型的数量

代码:
容器:
<div id="badQuaAnalyze"></div>
<div id="unqualified"></div>
配置项:
//图1
var badQuaAnalyze = echarts.init(document.getElementById('badQuaAnalyze'));
//图2
var unqualified = echarts.init(document.getElementById('unqualified'));
//配置项和数据
//图1
var badQuaAnalyzeOption = {
backgroundColor: 'rgba(255, 255, 255, 1)',
legend: {
data:[{name:'数量',icon:'rect'}],
textStyle:{
color:'#222222',
fontSize:12
},
y: 'bottom',
x: 'center' ,
},
tooltip : {
trigger: 'axis',
axisPointer : {
type : 'shadow'
},
formatter: function (params) {
var str = params[0]['axisValue'] + '<br>' + '不合格百分比:'+params[0]['value'] + '%';
return str;
}
},
xAxis: [
{
type: 'category',
axisLine:{
lineStyle:{
color:'#999999',
width:1
}
},
data: [],
axisPointer: {
type: 'shadow'
},
axisLabel:{
interval:0,
rotate:0,
formatter:function(value){
// return value.length > 5?value.substring(0,5)+'...':value;
return value;
}
}
}
],
yAxis: [
{
type: 'value',
splitLine:{
show:true ,
lineStyle:{
color:'#021439',
width: 1
}
},
axisLine:{
lineStyle:{
color:'#999999',
width:1
}
},
axisLabel: {
show: true,
interval: 'auto',
formatter: '{value} %'
},
name: '单位(%)',
}
],
};
//图2
var unqualifiedOption = {
backgroundColor: 'rgba(255, 255, 255, 1)',
tooltip : {
trigger: 'axis',
axisPointer : {
type : 'shadow'
},
formatter: function (params) {
var str = params[0]['axisValue'] + '<br>';
$.each(params,function (i,v) {
if (v.value) {
str += v.seriesName + ':' + v.value + '<br>';
}
})
return str;
}
},
xAxis: [
{
type: 'category',
axisLine:{
lineStyle:{
color:'#999999',
width:1
}
},
data: [],
axisPointer: {
type: 'shadow'
},
axisLabel:{
interval:0,
rotate:0,
formatter:function(value){
// return value.length > 10?value.substring(0,10)+'...':value;
return value;
}
}
}
],
yAxis: [
{
type: 'value',
splitLine:{
show:true ,
lineStyle:{
color:'#021439',
width: 1
}
},
axisLine:{
lineStyle:{
color:'#999999',
width:1
}
},
name: '不合格数量',
}
],
};
//使用刚指定的配置项和数据显示图表。
badQuaAnalyze.setOption(badQuaAnalyzeOption);//图1
unqualified.setOption(unqualifiedOption);//图2
getbadQuaAnalyzeData();//图1
getUnqualifiedData();//图2 //获取图表数据并插入
//图1
function getbadQuaAnalyzeData() {
// $.ajax({
// url: '',
// data: {},
// type: "POST",
// dataType: 'json',
// success: function(result){
var result = {
meg:'处理成功',
req:true,
rows:[
{
name: "部件1",
num: 55,//数量
percent: 66,//百分比
},
{
name: "部件2",
num: 45,//数量
percent: 56,//百分比
},
{
name: "部件3",
num: 35,//数量
percent: 46,//百分比
},
{
name: "部件4",
num: 75,//数量
percent: 96,//百分比
},
{
name: "部件5",
num: 5,//数量
percent: 10,//百分比
},
{
name: "部件6",
num: 30,//数量
percent: 36,//百分比
},
{
name: "部件7",
num: 40,//数量
percent: 50,//百分比
}, ]
}
var _name = [], _markPoint = [] , _percent = [];
console.log(result);
if (result.rows!=null&&result.rows.length > 0) {
$.each(result.rows,function (i,v) {
_name.push(v.name);
_percent.push(v.percent);
_markPoint.push({name : '数量', value : v.num, xAxis: i, yAxis: v.percent})
});
badQuaAnalyze.setOption({
series : [
{
name:'数量',
barWidth: '30%',
type:'bar',
itemStyle : {
normal : {
lineStyle:{
color:'#E09C19'
},
color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);}
}
},
data:_percent,
markPoint : {
data : _markPoint
},
},
],
xAxis : [
{
data:_name
}
]
});
}
// }
// });
}
//图2
function getUnqualifiedData() {
// $.ajax({
// url: '',
// data: {},
// type: "POST",
// dataType: 'json',
// success: function(result){ //图标的数据 是根据数据的顺序来的 如果需要图标X轴的时间顺序 请返回按时间排序的数据
//同一个时间("2017-05-24") 相同名称的(类型7) 后者的(num)数量会覆盖前者 并不会累加
var result = {
meg:'处理成功',
req:true,
rows:[
{
title:'标题',
time: "2017-05-24",
name:'类型2',
num: 54,//数量
},
{
title:'标题',
time: "2017-05-24",
name:'类型1',
num: 54,//数量
},
{
title:'标题',
time: "2017-05-24",
name:'类型4',
num: 54,//数量
}, {
title:'标题',
time: "2017-05-23",
name:'类型5',
num: 43,//数量
},
{
title:'标题',
time: "2017-05-23",
name:'类型4',
num: 43,//数量
},
{
title:'标题',
time: "2017-05-23",
name:'类型2',
num: 43,//数量
}, {
title:'标题',
time: "2017-05-22",
name:'类型5',
num: 32,//数量
}, {
title:'标题',
time: "2017-05-22",
name:'类型2',
num: 32,//数量
},
{
title:'标题',
time: "2017-05-22",
name:'类型7',
num: 32,//数量
}, {
title:'标题',
time: "2017-05-25",
name:'类型2',
num: 33,//数量
}, {
title:'标题',
time: "2017-05-21",
name:'类型4',
num: 21,//数量
},
{
title:'标题',
time: "2017-05-21",
name:'类型2',
num: 21,//数量
},
{
title:'标题',
time: "2017-05-21",
name:'类型7',
num: 21,//数量
}, ]
} var _time = [],_name = [],_series = [];
if (result.rows!=null&&result.rows.length > 0) {
$.each(result.rows,function (i,v) {//循环接口返回数据
if ($.inArray(v.time, _time) < 0 ) {//获得X轴横坐标
_time.push(v.time);
}
if ($.inArray(v.name, _name) < 0 ) {//没有出现过的名字(如:类型7) 创建一条
var current = {
name: v.name,
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'inside'
}
},
data: []
}
_name.push(v.name);//获取一组图例
$.each(_time,function (l,m) {
if (m === v.time) {
current.data[l] = v.num;//确保插入到对应的时间坐标处
}
})
_series.push(current)
} else {//重复的名字
$.each(_series,function (j,o) {
if (o.name === v.name) {
$.each(_time,function (a,b) {
if (b === v.time) {
o.data[a] = v.num;//确保插入到对应的时间坐标处
}
}) }
})
}
});
unqualified.setOption({
legend: {
data: _name
},
title : {
text: result.rows[0].title,
subtext: '',
x:'left'
},
series : _series,
xAxis : [
{
data:_time
}
]
});
}
// }
// });
}
echarts 柱状图的更多相关文章
- vue Echarts 柱状图点击事件
drawBar(){ let that = this; let chart = this.$echarts.init(document.getElementById('bar-graph')); le ...
- Echarts柱状图实现不同颜色渐变色
第一次写文,只是想记录一下自己平时发现的小功能,这篇主要是实现echarts柱状图,每个柱子实现不同颜色的渐变色,也是第一次接触echarts,后台使用ssm,前台是extjs,直接上效果图 直接上j ...
- echarts柱状图标签显示不完全的问题
echarts 柱状图当x轴标签数目超过一定数目时在小尺寸设备上第一个和最后一个标签不显示(不是重叠),axisLabel设置interval:0也不起作用; 解决办法: 这个问题存在于4.0版本以上 ...
- 关于Echarts柱状图实现的细节
echarts柱状图显示数值[1] echarts2: itemStyle : { normal: {label : {show: true, position: 'top'}}}, echarts ...
- echarts柱状图坐标文字显示不完整解决方式
echarts柱状图坐标文字显示不完整解决方式 本文转载自:https://jingyan.baidu.com/article/ab69b2707a9aeb2ca7189f0c.html echart ...
- echarts柱状图个数多,横坐标名称过长显示不全解决方法
当echarts柱状图个数多,横坐标名称过长时横坐标名称显示不全,网上并没有搜到太好的方法,于是自己加工了下,将横坐标名称显示前六位,当鼠标放到上面的时候显示全名,下面是示例代码,可以直接拷贝测试 代 ...
- Flask插件wtforms、Flask文件上传和Echarts柱状图
一.wtforms 类比Django的Form组件Form组件的主要应用是帮助我们自动生成HTML代码和做一些表单数据的验证 flask的wtforms用法跟Form组件大同小异参考文章:https: ...
- Echarts 柱状图配置详解
1.基本柱状图 // 指定图表的配置项和数据 var option = { // ---- 标题 ----- title: { text: '主标题', textStyle: { color: 're ...
- ECharts柱状图
首先我们要先去Echarts 官网 根据自己需要的版本进行下载下载 下载完成后,我们在项目中引入echarts 随后创建容器来存放我们要添加的柱状图 容器创建完毕我们需要在js中设置他的属性和值 此配 ...
- echarts柱状图 渐变色
效果图: var xAxisData = []; var data = []; for (var i = 9; i < 16; i++) { xAxisData.push('5月' + i + ...
随机推荐
- android只设置部分控件随着软键盘的出现而腾出空间
转载请标明出处:https://www.cnblogs.com/tangZH/p/12013685.html 在项目过程中,出现了一个需求,软键盘要顶起部分控件,而另一部分控件不动. 关于这种需求,我 ...
- Android 表格布局 TableLayout
属性介绍 stretchColumns:列被拉伸 shrinkColumns:列被收缩 collapseColumns:列被隐藏 举例测试 <TableLayout android:id=&qu ...
- Jsonp跨域原理及简单应用
浏览器的同源策略: 同源策略(Same Origin Policy)是一种约定,它是由Netscape提出的一个著名的安全策略,它限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互.这是 ...
- day04逻辑运算符短路、多分支结构(if和switch)、循环结构、while循环
复习 1.运算符和表达式 1)表达式 2)算数运算符 + - * / % 3)关系运算符 > < >= <= == != 4)逻辑运算符 && | ...
- linux部署.net Core项目
首篇笔记,多多关照.方便回忆和给新手指导,大神绕道 首先在Linux系统部署.net Core项目首先准备一个Linux系统的服务器,百度云,阿里云都行. 1.net core 部署在Linux系统上 ...
- React: 高阶组件(HOC)
一.简介 如我们所知,JavaScript有高阶函数这么一个概念,高阶函数本身是一个函数,它会接收或者返回一个函数,进而对该函数进行操作.其实,在React中同样地有高阶组件这么一个东西,称为HOC, ...
- IO - 同步 异步 阻塞 非阻塞的区别,学习Swoole有帮助
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?本文较长需耐心阅读,基础 ...
- ELK:ElasticSearch中有数据,Kibana查询不到数据
ElasticSearch中有数据,Kibana查询不到数据 多数原因就是Linux的时区问题, 在linux输入date查看当前时间是否根本地相对应,不对应那么你就来对了, 解决方案一. 这个选择的 ...
- Kali Linux configuration "Ettercap"
Xx_Instroduction Ettercap is a man-in-the-middle attack(MITM) tool,kali take this tool,so,use front ...
- Android Fragment 多层叠加时点击穿透解决方案
一.问题现象 多层fragment叠加时,点击上层fragment会使下层fragment的控件对应点击事件响应,这种现象就是点击穿透. 对于这种情况,我们一般都是对baseFragment进行vie ...