近来由于有几个小项目要用到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. xgene:肿瘤相关基因 KRAS,,BRAF,,通路PI3K-AKT

    KRAS基因 一个是KRAS1,位于chr6 短臂上,是一个“假基因”,它不能被转录成RNA,故没有功能的 另一个是KRAS2,位于chr12 短臂上..是“真基因”,是能够转录.并且翻译成蛋白的,是 ...

  2. vue.js2.0实战(1):搭建开发环境及构建项目

    Vue.js学习系列: vue.js2.0实战(1):搭建开发环境及构建项目 https://my.oschina.net/brillantzhao/blog/1541638 vue.js2.0实战( ...

  3. 面试题17:打印1到最大的n位数

    // 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n ...

  4. Linux操作系统的内存使用方法详细解析

    我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用. 一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存.这两个概念主要来自于linux内核的支持. Linux在 ...

  5. api接口访问限制

    1.场景描述 在日常开发接口的时候,尤其是restfull接口,肯定会考虑安全或者是做一些自定义的限制,用来界定并维护代码.那么,我们都会采用什么方法那?通常来讲,我们可以通过session的形式,以 ...

  6. 2017BAPC初赛A(思维,无序图,向量)

    #include<bits/stdc++.h>using namespace std;string goods,sister[100010];int x,m;unordered_map&l ...

  7. RHEL 7.3 无图形界面安装oracle 11gr2

    行方服务器无X界面,只能使用纯命令安装方式.提供RHEL全量系统镜像. 在网上搜了搜,参照CSDN作者“西伯利亚疯狂的蚯蚓”的安装过程成功安装oracle11gR2 原文:https://blog.c ...

  8. [poj 1276] Cash Machine 多重背包及优化

    Description A Bank plans to install a machine for cash withdrawal. The machine is able to deliver ap ...

  9. java 多线程学习笔记(一) -- 计算密集型任务

    最近在看<Java虚拟机并发编程>,在此记录一些重要的东东. 线程数的确定:1. 获取系统可用的处理器核心数:int numOfCores = Runtime.getRuntime().a ...

  10. c#中ToString("yyyyMMdd") 与ToString("yyyymmdd")区别

    string a= DateTime.Now.ToString("yyyyMMdd") ; string b=DateTime.Now.ToString("yyyymmd ...