我现在需要做一个折线统计图的程序,需要一个漂亮简单的统计图实例,flash的或是js的

JavaScript025

我现在需要做一个折线统计图的程序,需要一个漂亮简单的统计图实例,flash的或是js的,第1张

它这是flex+java做的,前台就一个swf + xml和js传变量,你想做这种,那需要后台接口,那种接口就像是股票在线查询购买软件一样,是买的。天气也有接口,但至少偶还米发现谁免费弄出来

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

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

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

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

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

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

我的assets目录结构如下:

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

<div id="main" style="float: leftwidth: 600pxheight:500pxmargin-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 = 1i <obj.steps.lengthi++){

if (obj.steps[i] <min){

min = obj.steps[i]

}

}

return min

}

//获取数组最大值

function getMaxValue(obj){

var max = obj.steps[0]

for (var i = 1i <obj.steps.lengthi++){

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)

}

打开我们要制作的表格。

2. 点击插入——图表。

3.假设我们只是要制作收入的变化,选择折线图中的数据点折线图,用这种类型的图适合。

4.然后会弹出对话框让我们选择制图的数据区域。

5. 假设我们要制作和尚的收入库,所以不需要选择尼姑的收入行,选择数据前两行。

6. 选择完以后会弹出一个源数据的对话框,确认。

7. 然后弹出图表向导对话框,输入图表标题以及X轴和Y轴的名称。

8. 弹出网格线格式的对话框,设置一下线条的形式,可根据自己实际需要的情况设置。

9. 然后点击刻度,因为和尚的收入在1000到1800之间,所以我就把最小值设置为1000,最大值设置为1800。

10. 图表制作完成。

扩展资料:

excel折线统计图如何给XY坐标加单位:

如图所示,拖动鼠标选中要建立图标的数据。

2. 点击菜单栏上的:插入--柱形图,选择一种样式。

3. 在插入的图表上,先点击纵坐标轴选中它,你可以看到这个坐标轴四周出现了四个小圆,也叫做控制点。

4. 右键单击这个坐标轴,然后选择【设置坐标轴格式】。

5. 在打开的坐标轴格式对话框中,我们看到坐标轴的最大值最小值等都是自动的,我们为了自己设定,必须先选中固定的,然后设定数值,如图所示。

6. 设置好刻度以后,我们点击数字选项,然后在类别下选择【自定义】,在各式代码这一栏输入g/毫升,然后点击添加按钮。这个就是给数据添加一个单位的代码。

7. 我们看到纵坐标轴已经添加了单位了。