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展示数据,他没有太多时间弄,所以我就帮他搞出来,当初刚接触的时候也是一头雾水,不知 ...
随机推荐
- 【总结整理】JQuery基础学习---事件篇
jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于 ...
- C#笔记(二)
转换操作符:操作符重载,可自定义实现从一种类型到另一种类型的显示或者隐式转换 : true/false也可进行操作符重载: LINQ中大部分查询运算符都有一个非常重要的特性:延迟执行.这意味着,他们不 ...
- neon eclipse tomcat发布项目乱码
解决方法如图
- Spring JdbcTemplate+JdbcDaoSupport实例(和比较)
首先,数据库是这样的,很简单. 当然,要引入spring的包,这里我全部导入了,省事. applicationContext.xml是这样的: <?xml version="1.0&q ...
- Window Live Writer在Win7下安装提示错误“OnCatalogResult:0x80190194”
1.在C:\Users\All Users\Microsoft\WLSetup\Logs下(All Users默认是隐藏文件夹),有两个Window Live的安装日记记录文件,打开第一个找到ERRO ...
- Gson应用:利用map和list来拼装Json消息
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...
- qemu-nbd使用教程
服务端 服务器环境 已经安装过qemu-img的32位ubuntu ubuntu@ubuntu-virtual-machine:~/laboratory$ uname -a Linux ubuntu- ...
- OpenStack虚机状态变化图解
对官网上内容的一个翻译,方便自己以后查找资料用 The following diagrams and tables show the required virtual machine (VM) sta ...
- poj2689(素数区间筛法模板)
题目链接: http://poj.org/problem?id=2689 题意: 给出一个区间 [l, r] 求其中相邻的距离最近和最远的素数对 . 其中 1 <= l < r < ...
- 2017-11-7 NOIP模拟赛
1.数学老师的报复 #include<iostream> #include<cstdio> using namespace std; int cnt; ]; long long ...