近来由于有几个小项目要用到echarts里的一些图,不得不使用,可是要完全按照自己的意愿来,要对它有些了解,要翻阅资料,遂有以下小结:

1.最开始第一步是把数据调出来就行,能在图上显示就成,以下是最开始的样子:

老板一看说怎么和内页的详情显示的不一样,内页显示的是上升的,你再好好看看到底怎么回事?

看啊看啊,提示框的数据也对着呢,谁知道是咋回事啊。算了换个图显示吧,遂改拆线图为面积图:

(列表图)

然而还是不对吧,这是典型的换汤不换药啊,老板与客户都不答应啊。欲哭无泪,为毛内页好好的,

列表页是这样子的,为毛为毛,纠结完还是得继续啊:

(内页是这种类似的图)

上天还是帮助我的,偶然放大来看才发现列表图之所以随着数值越来越大而曲线却向下是因为原点被设置在左上角,怎么调到左下角(原点)呢,百度或者必应后看资料呗:

找到这么个参数:grid(具体详情点击:http://echarts.baidu.com/echarts2/doc/doc.html#Grid)

设置为原点的写法:

grid:{

x:0,

y:0

}

蓝后图就成了这样:

我去,怎么和我想的不一样呢,再查再找,原来要这样啊:

grid:{

x:0,

y:0,

width:'50px',

height:'60px'

}

再一想手机有大有小,怎么能直接定宽高呢,试下百分比

grid:{

x:0,

y:0,

width:90%,

height:90%

}

一刷新,居然报错,要不加上引号试试:

grid:{

x:0,

y:0,

width:‘90%’,

height:‘90%’

}

一刷新,好了,歪打正着,算了,还是百分百吧,有空隙不好看:

grid:{

x:0,

y:0,

width:‘100%’,

height:‘100%’

}

给老板客户一看,客户说为什么第二张图的曲线起点那么高,不像第一张图与第三图那样;

哦,好的,我稍后修改:

接着查阅资料,有人说可以设置Y轴的最大值最小值

资料地址:http://echarts.baidu.com/echarts2/doc/doc.html#Yaxis

yAxis : [
{
name : '',
type : 'value',
show : false,

if(json.y.min){

min:json.y.min,

}

if(json.y.max){

max:json.y.max

}

}
]

对的,你没猜错,一刷新又报错;同事说这是定义好的是吧,怎么能这么写呢。那具体

怎么写还是你自己问度娘与必应吧,前翻后翻终于翻出来了:

    if(json.data.y.mintotal) {
option.yAxis[0].min=json.data.y.mintotal;
}
if(json.data.y.maxtotal) {
option.yAxis[0].max=json.data.y.maxtotal;
}

这下终于有点接近原点了,总算过去了,舒口气放松了下。

你以为可以下班走人了,想得美,内页问题还多着呢;

你看这个图的起点最低最小,为什么不是从原点开始:

行,算你狠,我改改改:

这不和上面列表页的一个道理么,找出Y轴数据的最大值与最小值并设置不就完了么,

这有什么难的,看着啊:

if(data.mintotal) {
option.yAxis[0].min=data.mintotal;
}
if(data.maxtotal) {
option.yAxis[0].max=data.maxtotal;
}

结果就这么乖乖地显示了:

这下好了吧,没什么问题了吧。

客户:不对,左边的数字是不是叠在一起了,你看下这个怎么弄?

我:哦,好的,我再找找资料看看。

其实偶已经像个泄了气的皮球,没办法还是得鼓着气继续,呜呜呜......

左问右边,试啊试,看啊看,是的,找到参数了:

如下图所示:

最终代码如下所示,这个可以单独命名为一个JS文件,当然一定要引入echarts.min.js啊。

 var TLR = {
showLineBarChart: function (wrap, title, xaxis, data) {
var legend = [], bottom = 50, dataZoomStart = 0, dataZoomShow = false;
if (typeof(data) === "object" && data.length > 0) {
$.each(data, function (i, n) {
legend.push(n.name);
});
/*if (legend.length > 0) {
bottom = 30;
}*/
if (data.length > 100) {
dataZoomShow = true;
dataZoomStart = (data.length - 100) / data.length * 100;
bottom += 30;
}
} var myChart = echarts.init(document.getElementById(wrap));
var option = {
title: {
show: (title ? true : false),
text: title || '',
left: 'center',
textStyle: {
fontSize: 14,
fontWeight: 500,
color:'#cf2222'
}
},
tooltip: {
trigger: 'axis'
},
legend: {
data: legend,
bottom: 0
},
/*toolbox: {
feature: {
saveAsImage: {}
}
},*/
grid: {
left: '8%',
right: '4%',
bottom: bottom,
containLabel: true,
borderColor: 'rgb(128,128,128,0.1)',
backgroundColor: 'rgb(128,128,128,0.1)'
},
xAxis: [
{
type: 'category',
boundaryGap: false,
splitLine: {lineStyle: {type: 'dashed'}},
data: xaxis,
axisLabel:{
textStyle:{
align:'left',
fontSize:10
}
}
}
],
yAxis: [
{
type: 'value',
splitLine: {lineStyle: {type: 'dashed'}},
axisLabel:{
textStyle:{
baseline:'middle',
fontSize:10
}
}
}
],
/*dataZoom: [
{
type: 'slider',
realtime: true,
show: dataZoomShow,
start: dataZoomStart,
end: 100,
bottom: 30,
xAxisIndex: [0]
}
],*/
series: data
};
myChart.setOption(option);
if(data.mintotal) {
option.yAxis[0].min=data.mintotal;
}
if(data.maxtotal) {
option.yAxis[0].max=data.maxtotal;
}
myChart.setOption(option);
},
otherFunction: function () {
}
}

调用代码如下,当然是用JSON格式的数据啦:

TLR.showLineBarChart(wrap || 'EzChartWrap', json.data.title, json.data.x, json.data.y);

哦,对了,右边的日期还是被截取掉了啊。

喂喂喂,你说什么?听不清啊,明天再说吧,已经很晚了。我要下班了。拜拜!

echarts使用中的那些事儿(一)的更多相关文章

  1. echarts使用中的那些事儿( 三)

    饼图上的那些字与下面说明性的文字有些重合,该怎么缩小圆形的大小呢,还有它的位置,怎么让它向上一些或者向下一些: 有以下两个属性可以解决问题: radius : '55%', ------------这 ...

  2. echarts使用中的那些事儿(二)

    然而第二天的事情你怎么能猜到客户的心思呢: 客户:右边的是啥? 偶:可放大缩小查看各个时期的数据. 客户:把它去掉吧,全部直观显示. 偶:哦,不过数据过多的话会导致页面过长的. 客户:只有你知道这个可 ...

  3. 做一个可复用的 echarts-vue 组件(延迟动画加载)

    在 vue 项目使用 echarts 的场景中,以下三点不容忽视:1. 可视化的数据往往是异步加载的:2. 若一个页面存在大量的图表( 尤其当存在关系图和地图时 ),往往会导致该页面的渲染速度很慢并可 ...

  4. echarts .NET类库开源

    前言: 2012年从长沙跑到深圳,2016年又从深圳回到长沙,兜兜转转一圈,又回到了原点.4年在深圳就呆了一家公司,回长沙也是因为深圳公司无力为继,长沙股东老板挽留,想想自己年纪也不小了.就回来了,在 ...

  5. Block编程值得注意的那些事儿

    [深入浅出Cocoa]Block编程值得注意的那些事儿   [深入浅出Cocoa]Block编程值得注意的那些事儿 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循 ...

  6. Echarts通过Ajax实现动态数据加载

    Echarts(3.x版)官网实例的数据都是静态的,实际使用中往往会要求从服务器端取数据进行动态显示,官网教程里给出的异步数据加载很粗略,下面就以官网最简单的实例为例子,详细演示如下过程:1.客户端通 ...

  7. Echarts环形进度使用 【1 简单的使用示例】

    使用中说明几点属性:  hoverAnimation:false,//此处查了好久属性//控制鼠标放置在环上时候的交互//这里一个简单的示例使用Echarts 环形图使用方式//常用于统计完成进度等等 ...

  8. Java日志框架那些事儿

    文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...

  9. .NET+Ajax+ashx 实现Echarts图表动态交互

    前言: 使用Echarts展示图表效果,在这里只做了四种案例:折线.柱状.圆形.雷达.当初是一位朋友用到Echarts展示数据,他没有太多时间弄,所以我就帮他搞出来,当初刚接触的时候也是一头雾水,不知 ...

随机推荐

  1. 解决PCL MLS : error LNK2019; error LNK2001 virtual MovingLeastSquares process performProcessing问题

    PCL 基于多项式拟合的法线估计.点云平滑和数据重采样 在使用Window VS2010为开发平台,学习PCL点云库的时候,学到曲面重建(Surface).在测试下面的程序的时候,遇到了问题. #in ...

  2. map-reduce的八个流程

    下面讲解这八个流程  Inputformat-->map-->(combine)-->partition-->copy&merge-->sort-->red ...

  3. p4180 次小生成树

    传送门 分析: 次小生成树的求法有两种,最大众的一种是通过倍增LCA找环中最大边求解,而这里我介绍一种神奇的O(nlogn) 做法: 我们先建立最小生成树,因为我们用kruskal求解是边的大小已经按 ...

  4. 15. CTF综合靶机渗透(八)

    VM Name: BlackMarket VM Description: BlackMarket VM presented at Brisbane SecTalks BNE0x1B (28th Ses ...

  5. JAVA IO包的整理---------Writer和Reader

    一 Writer public abstract class Writer extends Object implements Appendable, Closeable, Flushable 这个类 ...

  6. Fiddler开启Https的时候出现unable to configure windows to trust Fiddler Root certificate问题

    前言 通过log页面看到错误为:访问控制列表(ACL)结构无效. 网上(baidu,bing,google)各种方式都试过了: 如重置证书(Reset all certificates) 导出证书到本 ...

  7. docker17.09.1-ce 执行systemctl resart docker重启失败的问题

    记录在实际操作中碰到的docker问题 环境信息: 安装完kolla ocata版本,并且编译成功各openstack 组件的容器镜像 [root@localhost ~]# docker --ver ...

  8. node -- 安装及快速开始

    下载并安装 node下载地址:https://nodejs.org/en/download/ 安装就绪后,打开命令行,操作如下: shift+右键/Win+r->cmd 检测是否安装成功: no ...

  9. Java SE自学阶段的笔记整理

    其他知识点 1.String和Char的区别: (1)String是字符串类型,Char是字符类型: (2)Char要用单引号,String要用双引号: (3)String是一个类,具有面向对象的特性 ...

  10. go培训课程都学什么?xorm框架学习系列(二):xorm结构体映射规则和表操作

    上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息.本节课内容我们继续学习相关的知识和相关操作. 名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射. ...