addecharts markline颜色为什么只可以动态添加一条线

当前位置:
源文件浏览
[ 200金币]
,下载次数:0 次
| 关键字:
Properties
echartsPro.dll[4KB]
echartsPro.pdb[11KB]
an_hui_geo.json[61KB]
ao_men_geo.json[1KB]
bei_jing_geo.json[53KB]
china_city.json[79KB]
china_geo.json[52KB]
chong_qing_geo.json[78KB]
fu_jian_geo.json[41KB]
gan_su_geo.json[48KB]
guang_dong_geo.json[42KB]
guang_xi_geo.json[87KB]
gui_zhou_geo.json[69KB]
hai_nan_geo.json[48KB]
he_bei_geo.json[54KB]
he_nan_geo.json[68KB]
hei_long_jiang_geo.json[60KB]
hu_bei_geo.json[72KB]
hu_nan_geo.json[84KB]
ji_lin_geo.json[31KB]
jiang_su_geo.json[42KB]
jiang_xi_geo.json[55KB]
liao_ning_geo.json[59KB]
nei_meng_gu_geo.json[31KB]
ning_xia_geo.json[21KB]
qing_hai_geo.json[40KB]
shan_dong_geo.json[61KB]
shan_xi_1_geo.json[32KB]
shan_xi_2_geo.json[50KB]
shang_hai_geo.json[42KB]
si_chuan_geo.json[73KB]
tai_wan_geo.json[3KB]
tian_jin_geo.json[52KB]
world_geo.json[234KB]
xi_zang_geo.json[33KB]
xiang_gang_geo.json[2KB]
xin_jiang_geo.json[36KB]
yun_nan_geo.json[58KB]
zhe_jiang_geo.json[41KB]
projection
build.bat[52B]
loadingEffect
DesignTimeResolveAssemblyReferencesInput.cache[43KB]
echartsPro.csproj.FileListAbsolute.txt[971B]
echartsPro.dll[4KB]
echartsPro.pdb[11KB]
echartsPro.csproj.user[1KB]
echartsPro.sln[909B]
echartsPro.suo[23KB]
from.gif[4KB]
最新Asp.Net源码下载.url[123B]
当前路径:echarts/src/echarts.js
* ECharts, a javascript interactive chart library.
* Copyright (c) 2015, Baidu Inc.
* All rights reserved.
* /ecomfe/echarts/blob/master/LICENSE.txt
* @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
* @author Kener (@Kener-林峰, kener.)
define(function (require) {
var ecConfig = require('./config');
var zrUtil = require('zrender/tool/util');
var zrEvent = require('zrender/tool/event');
var self = {};
var _canvasSupported = require('zrender/tool/env').canvasS
var _idBase = new Date() - 0;
var _instances = {};
// ECharts实例map索引
var DOM_ATTRIBUTE_KEY = '_echarts_instance_';
self.version = '2.2.0';
self.dependencies = {
zrender: '2.0.7'
* 入口方法
self.init = function (dom, theme) {
var zrender = require('zrender');
if ((zrender.version.replace('.', '') - 0) & (self.dependencies.zrender.replace('.', '') - 0)) {
console.error(
'ZRender ' + zrender.version
+ ' is too old for ECharts ' + self.version
+ '. Current version need ZRender '
+ self.dependencies.zrender + '+'
dom = dom instanceof Array ? dom[0] :
// dom与echarts实例映射索引
var key = dom.getAttribute(DOM_ATTRIBUTE_KEY);
if (!key) {
key = _idBase++;
dom.setAttribute(DOM_ATTRIBUTE_KEY, key);
if (_instances[key]) {
// 同一个dom上多次init,自动释放已有实例
_instances[key].dispose();
_instances[key] = new Echarts(dom);
_instances[key].id =
_instances[key].canvasSupported = _canvasS
_instances[key].setTheme(theme);
_instances[key];
* 通过id获得ECharts实例,id可在实例化后读取
self.getInstanceById = function (key) {
return _instances[key];
* 消息中心
function MessageCenter() {
zrEvent.Dispatcher.call(this);
zrUtil.merge(MessageCenter.prototype, zrEvent.Dispatcher.prototype, true);
* 基于zrender实现Echarts接口层
* @param {HtmlElement} dom 必要
function Echarts(dom) {
// Fxxk IE11 for breaking initializati
// Just set something to let it be!
// by kener
dom.innerHTML = '';
this._themeConfig = {}; // zrUtil.clone(ecConfig);
this.dom =
// curOption clone
// this._optionR
// this._refreshI
// 内部刷新标志位
this._connected =
this._status = {
// 用于图表间通信
dragIn: false,
dragOut: false,
needRefresh: false
this._curEventType =
// 破循环信号灯
this._chartList = [];
// 图表实例
this._messageCenter = new MessageCenter();
this._messageCenterOutSide = new MessageCenter();
// Echarts层的外部消息中心,做Echarts层的消息转发
// resize方法经常被绑定到window.resize上,闭包一个this
this.resize = this.resize();
// 初始化::构造函数
this._init();
* ZRender EVENT
* @type {Object}
var ZR_EVENT = require('zrender/config').EVENT;
* 要绑定监听的zrender事件列表
* @type {Array}
var ZR_EVENT_LISTENS = [
'CLICK', 'DBLCLICK', 'MOUSEOVER', 'MOUSEOUT',
'DRAGSTART', 'DRAGEND', 'DRAGENTER', 'DRAGOVER', 'DRAGLEAVE', 'DROP'
* 对echarts的实例中的chartList属性成员,逐个进行方法调用,遍历顺序为逆序
* 由于在事件触发的默认行为处理中,多次用到相同逻辑,所以抽象了该方法
* 由于所有的调用场景里,最多只有两个参数,基于性能和体积考虑,这里就不使用call或者apply了
* @param {ECharts} ecInstance ECharts实例
* @param {string} methodName 要调用的方法名
* @param {*} arg0 调用参数1
* @param {*} arg1 调用参数2
* @param {*} arg2 调用参数3
function callChartListMethodReverse(ecInstance, methodName, arg0, arg1, arg2) {
var chartList = ecInstance._chartL
var len = chartList.
while (len--) {
var chart = chartList[len];
if (typeof chart[methodName] === 'function') {
chart[methodName](arg0, arg1, arg2);
Echarts.prototype = {
* 初始化::构造函数
_init: function () {
var self =
var _zr = require('zrender').init(this.dom);
this._zr = _
// wrap: n,e,d,t for name event data this
this._messageCenter.dispatch = function(type, event, eventPackage, that) {
eventPackage = eventPackage || {};
eventPackage.type =
eventPackage.event =
self._messageCenter.dispatchWithContext(type, eventPackage, that);
if (type != 'HOVER' && type != 'MOUSEOUT') {
// 频繁事件直接抛出
setTimeout(function(){
self._messageCenterOutSide.dispatchWithContext(
type, eventPackage, that
self._messageCenterOutSide.dispatchWithContext(
type, eventPackage, that
this._onevent = function(param){
return self.__onevent(param);
for (var e in ecConfig.EVENT) {
if (e != 'CLICK' && e != 'DBLCLICK'
&& e != 'HOVER' && e != 'MOUSEOUT' && e != 'MAP_ROAM'
this._messageCenter.bind(ecConfig.EVENT[e], this._onevent, this);
var eventBehaviors = {};
this._onzrevent = function (param) {
return self[eventBehaviors[ param.type ]](param);
// 挂载关心的事件
for (var i = 0, len = ZR_EVENT_LISTENS. i & i++) {
var eventName = ZR_EVENT_LISTENS[i];
var eventValue = ZR_EVENT[eventName];
eventBehaviors[eventValue] = '_on' + eventName.toLowerCase();
_zr.on(eventValue, this._onzrevent);
this.chart = {};
// 图表索引
ponent = {};
// 组件索引
// 内置图表
var Island = require('./chart/island');
this._island = new Island(this._themeConfig, this._messageCenter, _zr, {}, this);
this.chart.island = this._
// 内置通用组件
var Toolbox = require('./component/toolbox');
this._toolbox = new Toolbox(this._themeConfig, this._messageCenter, _zr, {}, this);
ponent.toolbox = this._
var componentLibrary = require('./component');
componentLibrary.define('title', require('./component/title'));
componentLibrary.define('tooltip', require('./component/tooltip'));
componentLibrary.define('legend', require('./component/legend'));
if (_zr.getWidth() === 0 || _zr.getHeight() === 0) {
console.error('Dom’s width & height should be ready before init.');
* ECharts事件处理中心
__onevent: function (param){
param.__echartsId = param.__echartsId || this.
// 来自其他联动图表的事件
var fromMyself = (param.__echartsId === this.id);
if (!this._curEventType) {
this._curEventType = param.
switch (param.type) {
case ecConfig.EVENT.LEGEND_SELECTED :
this._onlegendSelected(param);
case ecConfig.EVENT.DATA_ZOOM :
if (!fromMyself) {
var dz = ponent.dataZ
dz.silence(true);
dz.absoluteZoom(param.zoom);
dz.silence(false);
this._ondataZoom(param);
case ecConfig.EVENT.DATA_RANGE :
fromMyself && this._ondataRange(param);
case ecConfig.EVENT.MAGIC_TYPE_CHANGED :
if (!fromMyself) {
var tb = ponent.
tb.silence(true);
tb.setMagicType(param.magicType);
tb.silence(false);
this._onmagicTypeChanged(param);
case ecConfig.EVENT.DATA_VIEW_CHANGED :
fromMyself && this._ondataViewChanged(param);
case ecConfig.EVENT.TOOLTIP_HOVER :
fromMyself && this._tooltipHover(param);
case ecConfig.EVENT.RESTORE :
this._onrestore();
case ecConfig.EVENT.REFRESH :
fromMyself && this._onrefresh(param);
// 鼠标同步
case ecConfig.EVENT.TOOLTIP_IN_GRID :
case ecConfig.EVENT.TOOLTIP_OUT_GRID :
if (!fromMyself) {
// 只处理来自外部的鼠标同步
var grid = ponent.
if (grid) {
this._zr.trigger(
'mousemove',
connectTrigger: true,
zrenderX: grid.getX() + param.x * grid.getWidth(),
zrenderY: grid.getY() + param.y * grid.getHeight()
else if (this._connected) {
// 来自自己,并且存在多图联动,空间坐标映射修改参数分发
var grid = ponent.
if (grid) {
param.x = (param.event.zrenderX - grid.getX()) / grid.getWidth();
param.y = (param.event.zrenderY - grid.getY()) / grid.getHeight();
case ecConfig.EVENT.RESIZE :
case ecConfig.EVENT.DATA_CHANGED :
case ecConfig.EVENT.PIE_SELECTED :
case ecConfig.EVENT.MAP_SELECTED :
// 多图联动,只做自己的一级事件分发,避免级联事件循环
if (this._connected && fromMyself && this._curEventType === param.type) {
for (var c in this._connected) {
this._connected[c].connectedEventHandler(param);
// 分发完毕后复位
this._curEventType =
if (!fromMyself || (!this._connected && fromMyself)) {
// 处理了完联动事件复位
this._curEventType =
* 点击事件,响应zrender事件,包装后分发到Echarts层
_onclick: function (param) {
callChartListMethodReverse(this, 'onclick', param);
if (param.target) {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 echarts markline属性 的文章

 

随机推荐