js折线图?

如何用JavaScript获取WebViewString并用ECharts的库绘制折线图?

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

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

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

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

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

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

我的assets目录结构如下:

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

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

导侍芦入图表构建工具

脊胡script src="js/echarts.min.js"/script

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

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

//创建折线图

function createLineChart(obj){

lineJson=obj;

options = {

title : {

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

text: obj.title,

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: obj.times //动态展示运动时间

},

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: obj.steps, //动态展示运动步数数据老野带

lineStyle: {

normal: {

width: 3,

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

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){

myChart.setOption({

dataZoom: [{

id: 'dataZoom',

start: start,

end: end

}]

});

}

//获取数组最小值

function getMinValue(obj){

var min = obj.steps[0];

for (var i = 1; i obj.steps.length; i++){

if (obj.steps[i] min){

min = obj.steps[i];

}

}

return min;

}

//获取数组最大值

function getMaxValue(obj){

var max = obj.steps[0];

for (var i = 1; i obj.steps.length; i++){

if (obj.steps[i] max) {

max = obj.steps[i];

}

}

return max;

}

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

function updateDataXY(dataX,dataY){

myChart.setOption({

xAxis: {

id: 'dataX',

data:lineJson.times.concat(dataX)

},

series:[{

id: 'dataY',

data:lineJson.steps.concat(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 = echarts.init(document.getElementById('main'));

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

myChart.setOption(options);

}

js折线图?  第1张

Chart.js绘制的线图 怎么变成折线图.

bezierCurve : false, // 是否使用贝塞尔曲线? 即:线条是猜租薯否弯曲

bezierCurve 将它置为false,穗者就型逗是折线

chartjs折线图title位置的设置

Cartjs折线图ttl一位置的设置是什么呢?其实呢我们js折线图ttl一者位迟大置的设置是在我型岁们的头像也就是左上角里面点进去再找到设码租竖置才行的,所以说charts折线图tl1位置的设置是在左上角。

html怎么用js特效做折线图

使用原生js自己写或js库(框架)都是可以的,由于目前HTML5并不手大码是所有的浏览仿禅器都完美支持,使用兼容性比较好的js库是个不错的选择。

例如Highcharts图标库就可以实现各类曲线图、折线图、区域图、3D图、柱状图等等。具体使用参考:。

Highcharts中做折线图的demo代码可以作为参考:

html lang="en"

head

  script type="text/javascript" src=""/script

  script type="text/javascript" src=""/script

  script type="text/javascript" src=""/script

  script

    $(function () {

    $('#container').highcharts({

        chart: {

            type: 'line'

        },

        title: {

            text: 'Monthly Average Temperature'

        },

        subtitle: {

            text: 'Source: WorldClimate.com'

        },

        xAxis: {

            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

        },

        yAxis: {

            title: {

                text: 'Temperature (°C)'

            }

        },

        tooltip: {

            enabled: false,

            formatter: function() {

                return 'b'+ this.series.name +'/bbr/'+this.x +': '+ this.y +'°C';

            }

        },

        plotOptions: {

            line: {

                dataLabels: {

                    enabled: true

                },

                enableMouseTracking: false

            }

   毕哪     },

        series: [{

            name: 'Tokyo',

            data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]

        }, {

            name: 'London',

            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]

        }]

    });

});

  /script

/head

body

  div id="container" style="min-width:700px;height:400px"/div

/body

/html

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的前端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 12:49
下一篇 2023-09-23 12:49

相关推荐

发表回复

登录后才能评论