echartchina.js的简单介绍

本文目录一览:

echart移动端优化

做移动端数据可视化产品,需要封装echarts图表做子组件,并兼容原先pc端api请求格式,还引入了地图数据,支持省份下钻。完成所有功能后,vendor大小2.49M,build速度59s,首屏加载速度和webpack打包速度都很慢。

webpack: 3.6 echarts:4.1

优化1:echart按需加载

(echart整体画图数据包700KB,比highcharts和f2要大,技术选型上可以考虑一下其他方案。)

从全局引用,优化为按需引用。引用echarts压缩过的省份地图的js数据,json数据会大一些,还需要registerMap。

优化2:路由懒加载,vue异步组件,vendor分包,首屏加载速度加快。

将路由页面拆分chunk打包,所有路由页面打包在cube中。

按需加载省市js数据,打包到province中。

封装echart子组件,打包到echarts中。

分包结果:

npm run build –report

优化3:webpack打包速度

分包后build速度41s,先用 webpack-visualizer-plugin 分析一下当前打包的状况。

生产环境:

配置CommonsChunkPlugin

加速文件搜索

配置 resolve.modules

设置 test include exclude

使用并行压缩插件 webpack-parallel-uglify-plugin

配置externals(cdn)(会增加首屏加载时长)

DllPlugin和DllReferencePlugin (会加载首屏加载时长)

使用HappyPack来加速构建

npm run build:dll

npm run build

webpack 3.x版本,add-asset-html-webpack-plugin需要2.1.3版本。

报错: TypeError: Cannot read property ‘compilation’ of undefined

减少webpack打包时间,省份数据还编译。

加了cache-loader做缓存,用了 only-if-changed-webpack-plugin 插件,发现全局不动不编译,有一点动都编译。还和 html-webpack-plugin 有冲突。

巨大的echarts让人头大。

一开始想让打包好的dll,可以不首屏加载,动态加载。

发现有一个scriptjs的插件。

把echarts、地图数据拆到cdn里,scriptjs按需加载。

总结:

程序猿学好英语是件很重要的事情,github看的让人头大。

小师傅好厉害,哈哈哈。

相关链接:

echarts3地图显示不正常是怎么回事

显示什么问题?我之前遇到的就是引用echarts后地图不显示的问题。

这个问题是因为echarts3的地图的geo数据以前的中国地图是内置了,现在新版本需要自己下载的china的js或json数据,引用了之后就可以显示了。

ECharts3 怎么加载 china.js 地图

script src=”echarts.js”/script

script src=”map/js/china.js”/script

script

var chart = echarts.init(document.getElementById(‘main’));

chart.setOption({

series: [{

type: ‘map’,

map: ‘china’

}]

});

/script

echar_china_cities_pypkg中含有每个市的js文件,为什么画地图只有南海诸岛

可能是没有安装好以下程序。

检查是否安装了地图需要的这几个包:echarts-countries-pypkg/echarts-china-provinces-pypkg/echarts-china-cities-pypkgecharts-china-counties-pypkg/echarts-china-misc-pypkg/echarts-united-kingdom-pypkg检查已经安装了,最后查知是因为eharts3 不再内置地图文件尴尬,因此需要我们手动引入官网的js或者json文件,显示中国地图需要china.js文件。

如何使用echart中获取canvas绘制到自己的canvas上去

获取echart的imgge:

[javascript] view plain copy

var img = new Image();

img.src = myChart.getDataURL({

pixelRatio: 2,

backgroundColor: ‘#fff’

});

这中方式是获取echart的图片

获取echart的canvas:

[javascript] view plain copy

var offcanvas= myChart.getRenderedCanvas({

pixelRatio: 2,

backgroundColor: ‘#fff’

});

有了种两种方式再实现离屏canvas就很简单了

下面给出一个简单的示例(获取canvas的):

html页面:

[html] view plain copy

!DOCTYPE html

html lang=”en”

head

meta charset=”UTF-8″

title/title

script type=”text/javascript” src=”../js/jquery/jquery-1.9.2.min.js”/script

script type=”text/javascript” src=”../js/echart/echarts.min.js”/script

script type=”text/javascript” src=”../js/echart/china.js”/script

script type=”text/javascript” src=”../js/effsctScatter-map.js”/script

/head

body

div id=”main” style=”width: 600px;height:400px;”/div

canvas id=”canvas”/canvas

/body

/html

js文件:

[javascript] view plain copy

/**

* Created by se7en on 2016/2/4.

*/

$(document).ready(function () {

var option = {

legend: {

data:[‘sin’,’cos’]

},

toolbox: {

show : true,

feature : {

mark : {show: true},

dataZoom : {show: true},

dataView : {show: true, readOnly: false},

restore : {show: true},

saveAsImage : {show: true}

}

},

xAxis : [

{

type : ‘value’,

scale:true

}

],

yAxis : [

{

type : ‘value’,

scale:true

}

],

series : [

{

name:’sin’,

type:’scatter’,

large: true,

symbolSize: 3,

data: (function () {

var d = [];

var len = 10000;

var x = 0;

while (len–) {

x = (Math.random() * 10).toFixed(3) – 0;

d.push([

x,

//Math.random() * 10

(Math.sin(x) – x * (len % 2 ? 0.1 : -0.1) * Math.random()).toFixed(3) – 0

]);

}

//console.log(d)

return d;

})()

},

{

name:’cos’,

type:’scatter’,

large: true,

symbolSize: 3,

data: (function () {

var d = [];

var len = 10000;

var x = 0;

while (len–) {

x = (Math.random() * 10).toFixed(3) – 0;

d.push([

x,

//Math.random() * 10

(Math.cos(x) – x * (len % 2 ? 0.1 : -0.1) * Math.random()).toFixed(3) – 0

]);

}

//console.log(d)

return d;

})()

}

]

};

var myChart = echarts.init(document.getElementById(‘main’));

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

$(‘#main’).hide();

var canvas = document.getElementById(“canvas”);

canvas.width = 800;

canvas.height = 600;

var ctx = canvas.getContext(‘2d’);

var offcanvas = myChart.getRenderedCanvas({

pixelRatio: 2,

backgroundColor: ‘#fff’

});

ctx.drawImage(offcanvas,0,0);

});

至于echart获取canvas中的参数大家可以自己尝试一下,可能会有不同的结果

怎么查看echarts.js版本

在echarts.js文件中搜索version,找到如下格式位置:

此处应该就是echarts的版本号了

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:53
下一篇 2024-12-12 12:53

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • Python樱花树代码简单

    本文将对Python樱花树代码进行详细的阐述和讲解,帮助读者更好地理解该代码的实现方法。 一、简介 樱花树是一种图形效果,它的实现方法比较简单。Python中可以通过turtle这…

    编程 2025-04-28
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • Python大神作品:让编程变得更加简单

    Python作为一种高级的解释性编程语言,一直被广泛地运用于各个领域,从Web开发、游戏开发到人工智能,Python都扮演着重要的角色。Python的代码简洁明了,易于阅读和维护,…

    编程 2025-04-28
  • 用Python实现简单爬虫程序

    在当今时代,互联网上的信息量是爆炸式增长的,其中很多信息可以被利用。对于数据分析、数据挖掘或者其他一些需要大量数据的任务,我们可以使用爬虫技术从各个网站获取需要的信息。而Pytho…

    编程 2025-04-28

发表回复

登录后才能评论