echarts使用中的那些事儿(一)
近来由于有几个小项目要用到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使用中的那些事儿(一)的更多相关文章
- echarts使用中的那些事儿( 三)
饼图上的那些字与下面说明性的文字有些重合,该怎么缩小圆形的大小呢,还有它的位置,怎么让它向上一些或者向下一些: 有以下两个属性可以解决问题: radius : '55%', ------------这 ...
- echarts使用中的那些事儿(二)
然而第二天的事情你怎么能猜到客户的心思呢: 客户:右边的是啥? 偶:可放大缩小查看各个时期的数据. 客户:把它去掉吧,全部直观显示. 偶:哦,不过数据过多的话会导致页面过长的. 客户:只有你知道这个可 ...
- 做一个可复用的 echarts-vue 组件(延迟动画加载)
在 vue 项目使用 echarts 的场景中,以下三点不容忽视:1. 可视化的数据往往是异步加载的:2. 若一个页面存在大量的图表( 尤其当存在关系图和地图时 ),往往会导致该页面的渲染速度很慢并可 ...
- echarts .NET类库开源
前言: 2012年从长沙跑到深圳,2016年又从深圳回到长沙,兜兜转转一圈,又回到了原点.4年在深圳就呆了一家公司,回长沙也是因为深圳公司无力为继,长沙股东老板挽留,想想自己年纪也不小了.就回来了,在 ...
- Block编程值得注意的那些事儿
[深入浅出Cocoa]Block编程值得注意的那些事儿 [深入浅出Cocoa]Block编程值得注意的那些事儿 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循 ...
- Echarts通过Ajax实现动态数据加载
Echarts(3.x版)官网实例的数据都是静态的,实际使用中往往会要求从服务器端取数据进行动态显示,官网教程里给出的异步数据加载很粗略,下面就以官网最简单的实例为例子,详细演示如下过程:1.客户端通 ...
- Echarts环形进度使用 【1 简单的使用示例】
使用中说明几点属性: hoverAnimation:false,//此处查了好久属性//控制鼠标放置在环上时候的交互//这里一个简单的示例使用Echarts 环形图使用方式//常用于统计完成进度等等 ...
- Java日志框架那些事儿
文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...
- .NET+Ajax+ashx 实现Echarts图表动态交互
前言: 使用Echarts展示图表效果,在这里只做了四种案例:折线.柱状.圆形.雷达.当初是一位朋友用到Echarts展示数据,他没有太多时间弄,所以我就帮他搞出来,当初刚接触的时候也是一头雾水,不知 ...
随机推荐
- CF1041F Ray in the tube
挂上Chester大神的解题报告 有一个思维跳跃的地方,就是不应该枚举所有的$B$点,而是应该在选定一个$A$点之后枚举距离计算. 然后我们发现枚举距离是$2^k$的长度就可以了,证明如下: 假如距离 ...
- jquery选择器中的find和空格,children和>的区别、及父节点兄弟节点,还有判断是否存在的写法
一.find和空格,children和>及其它的区别 空格:$('parent childchild')表示获取parent下的所有的childchild节点(所有的子孙). 等效成 = ...
- Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G
全书共15章,主要包括网页制作基础.Dreamweaver CC网页制作.Photoshop CC网页图像设计.Flash CC网页动画设计以及综合案例实战5个部分.通过本书的学习,不仅能让读者学会三 ...
- 盒模型的auto值
浮动在盒模型的auto值 属性 常规流 浮动 margin-left:auto 尽量撑满包含块 0px margin-right:auto 尽量撑满包含块 0px margin-top:auto 0p ...
- (linux)修改MySQL密码方法
1,在/etc/my.cnf末尾 加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...
- kafka 配置及常用命令
1. 主要配置 config/server.properties (1) broker.id=0 # 集群中,每个 kafka 实例的值都不一样 (2) log.dirs=/tmp/kafka-l ...
- 求组合数 C(n,m)
下面内容转自: http://blog.csdn.net/zengaming/article/details/63681754 一.求解C(n, m) 公式一: 公式二: 公式二可以这么理解,从n个物 ...
- 使用mount命令挂载CDROM
Linux显示所有的目录都在一个目录树下,而于他们位于哪一个驱动器/硬件无关.在Linux下的磁盘内容作为子目录形式出现的.可移动介质的内容不会自动出现在这些自目录的,我们必须通过挂载驱动器来实现. ...
- 异常HttpMessageNotWritableException解决办法
1. 问题描述 在写SpringBoot项目的时候,由于是前后端分离项目,为了统一接口形式,使用一个类封装了返回数据的形式,但是在测试的时候报异常HttpMessageNotWritableExcep ...
- Gradle安装配置
1.构建工具的简单介绍在代码世界中有三大构建工具,ant.Maven和Gradle. 现在的状况是maven和gradle并存,gradle使用的越来越广泛. Maven使用基于XML的配置,Grad ...