echarts自定义主题

echarts自定义主题,第1张

(dom: HTMLDivElement|HTMLCanvasElement, theme: Object|string, opts: { devicePixelRatio: number

    renderer: string

    width: number|string

    height number|string}) => ECharts

dom: 实例容器,一般是一个具有高宽的div元素。

theme:应用的主题。可以是一个主题的配置对象,也可以是使用已经通过  echartsregisterTheme  注册的主题名称

opts:附加参数。有下面几个可选项:

    1 devicePixelRatio:设备像素比,默认取浏览器的值windowdevicePixelRatio。

    2renderer:渲染器,支持 'canvas' 或者 'svg'。

    3width:可显式指定实例宽度,单位为像素。如果传入值为 null/undefined/'auto',则表示自动取 dom(实例容器)的宽度。

    4height:可显式指定实例高度,单位为像素。如果传入值为 null/undefined/'auto',则表示自动取 dom(实例容器)的高度。

var theme ={

    color: [

        '#2ec7c9', '#b6a2de', '#5ab1ef', '#ffb980', '#d87a80',

        '#8d98b3', '#e5cf0d', '#97b552', '#95706d', '#dc69aa',

        '#07a2a4', '#9a7fd1', '#588dd5', '#f5994e', '#c05050',

        '#59678c', '#c9ab00', '#7eb00a', '#6f5553', '#c14089'

    ]

}

echartsregisterTheme('themes', theme);

// registerTheme函数接收两个参数,第一个是主题的名称,第二个是主题对象。

var myChart = echartsinit(documentgetElementById('main'), 'themes');

//  在初始化的时候将你注册的主题名称写入,即可完成注册。

var option={}

myChatsetOption(option);

结束!

(1) legend: 图例组件。图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

    --- orient (string):图例列表的布局朝向。可选:'horizontal'、'vertical'(默认:'horizontal' );

    --- data[i] (object):图例的数据数组。数组项通常为一个字符串,每一项代表一个系列的 name (如果是 饼图 ,也可以是饼图单个数据的 name )。图例组件会自动根据对应系列的图形标记(symbol)来绘制自己的颜色和标记,特殊字符串 '' (空字符串)或者 '\n' (换行字符串)用于图例的换行。

    如果 data 没有被指定,会自动从当前系列中获取。多数系列会取自 seriesname 或者 seriesencode 的 seriesName 所指定的维度。如 饼图 and 漏斗图 等会取自 seriesdata 中的 name。

    如果要设置单独一项的样式,也可以把该项写成配置项对象。此时必须使用 name 属性对应表示系列的 nam

示例:

更多饼图实例信息请参考ECharts: >

做金融类型的应用经常会用到数据的统计报表 诸如折线图 ,  K线图, 饼状图,柱状图  既能形象的表述数据的分布 , 同时又增加了数据的可读性

实现思路: 百度Echarts支持安卓移动端的运用 , WebView加载html, 嵌套JavaScript代码 , 即可动态实现在线图表的展示功能

下面展示下今天要实现的效果

进入Echarts官网下载页 可以选择自己需要的图表类型 自定义下载js文件 , 精简版,常用版, 完整版 根据需求自定义下载

导入刚下载的图表构建工具   echartsminjs  到安卓项目的 资产目录(assets)下 这里我使用的 完整版

创建 Htm l文件 , 即要展示的网页 ,  文件名自定义 这里我是 myecharthtml

我的assets目录结构如下:

接下来就是html文件的代码了 首先我们为ECharts准备一个具备大小(宽高) 的 DOM 并取别名

<div id="main" style="float: left; width: 600px;height:500px; margin-top: 20px"></div>

导入图表构建工具

<script src="js/echartsminjs"></script>

因为我这里要展示多种类型的图表 所以定义了几个方法  下面以折线图为例

var lineJson;//用于临时存储折线图json对象, 便于追加数据

//创建折线图

function createLineChart(obj){

lineJson=obj;

options = {

title : {

//text: '脉搏值(次/min)',

text: objtitle,

subtext: 'make by sxt',

x:'left'

},

tooltip: {

trigger: 'axis',

formatter: "脉搏频率 : <br/>{b} - {c} 次/min"

},

xAxis: {

id: 'dataX',

type: 'category',

splitLine:{

show:true

},

axisLabel: {

//formatter: '{value} °C'

formatter: '{value}'

},

data: objtimes //动态展示运动时间

},

yAxis: {

type: 'value',

axisLine: {onZero: true},

splitLine:{

show:true

},

axisLabel: {

//formatter: '{value} km'

formatter: '{value}'

},

min:0,

max:150//在此设置范围

},

dataZoom: [

{

id:'dataZoom',

show:false,

type: 'inside',//inside 为拖动效果

//type: 'slider',//slider为手动更新效果

realtime: true,

filterMode: 'filter',

start: 20,

end: 85,

xAxisIndex: 0

}

],

series: [{

id: 'dataY',

name: '脉搏频率(次)/(s)',

type: 'line',

smooth: true,

data: objsteps, //动态展示运动步数数据

lineStyle: {

normal: {

width: 3,

shadowColor: 'rgba(0,0,0,04)',

shadowBlur: 10,

shadowOffsetY: 10

}

},

markPoint : {//标注点

data : [//这种方式内部自动计算最值

{

type :'max'  ,

name:'最大值' ,

symbol:'image://' + treeUrl,

symbolSize: [30, 30]

},

{

type : 'min',

name: '最小值',

symbol:'image://' + childUrl,

symbolSize: [30, 30]

}

]

},

markLine : {

data : [ {type : 'average', name: '平均值'} ]

}

}]

};

}

//更新折线图的缩放起始位置

function updateZoomState(start,end){

myChartsetOption({

dataZoom: [{

id: 'dataZoom',

start: start,

end: end

}]

});

}

//获取数组最小值

function getMinValue(obj){

var min = objsteps[0];

for (var i = 1; i < objstepslength; i++){

if (objsteps[i] < min){

min = objsteps[i];

}

}

return min;

}

//获取数组最大值

function getMaxValue(obj){

var max = objsteps[0];

for (var i = 1; i < objstepslength; i++){

if (objsteps[i] > max) {

max = objsteps[i];

}

}

return max;

}

//更新折线图数据 继续在后面追加数据

function updateDataXY(dataX,dataY){

myChartsetOption({

xAxis: {

id: 'dataX',

data:lineJsontimesconcat(dataX)

},

series:[{

id: 'dataY',

data:lineJsonstepsconcat(dataY)

}],

dataZoom: [{

id: 'dataZoom',

start: 60,

end: 100

}]

});

}

展示图表

//显示图表

function createChart(type,json){

if(type=='line'){

createLineChart(json);

}

if(type=='bar'){

createBarChart(json);

}

if(type=='pie'){

createPieChart(json);

}

if(type=='more'){

createMoreChart()

}

// 基于准备好的dom,初始化echarts实例

myChart = echartsinit(documentgetElementById('main'));

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

myChartsetOption(options);

}

以上就是关于echarts自定义主题全部的内容,包括:echarts自定义主题、(4)、React中使用ECharts——饼图、如何用JavaScript获取WebViewString并用ECharts的库绘制折线图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9270375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)