Home Web Front-end JS Tutorial 基于Echarts 3.19 制作常用的图形(非静态)_javascript技巧

基于Echarts 3.19 制作常用的图形(非静态)_javascript技巧

May 23, 2016 pm 01:15 PM

饼图:

环境:Echarts 3.19 vs2013

实现方式:ajax+ashx+json

注意事项: 官网所需格式为 [{value:23,name:'xxxx' }] 请将key 的名字不要写错

具体代码,各位看官 请下移目光。

1

2

<!--请先引用文件--> <script src="../Scripts/jquery-1.8.2.min.js"></script>

<script src="../Scripts/echarts/echarts.min.js"></script>

Copy after login

页面部分就设置一个div 就好了

1

2

<div><input type="button" id="btngo" value="Pie" /> </div>

<div id="contanis" style="width:px;height:px"></div>

Copy after login

 接下来就是js部分了 其实Echarts 跟HTML5中的 Canvans 还是有联系的 想知道的可以查资料哟

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

$("#btngo").click(function () { //这里用的是点击事件下面 当然这也是模仿你有条件查询的时候咯

var dom = document.getElementById('contanis');

var mycharts = echarts.init(dom);

option = {

title: {

text: '部门人口比例',

subtext: '测试数据',

x: 'center'

},

tooltip: {

trigger: 'item',

formatter: "{a} <br/>{b} : {c} ({d}%)"

},

legend: {

orient: 'vertical',

left: 'left',

data: []

},

series: [

{

name: '2012年度',

type: 'pie',

radius: '55%',

center: ['50%', '60%'],

data: [],

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: 'rgba(0, 0, 0, 0.5)' //这怎么会有个.5呢? 看来还是要看看H5哟

}

}

}

]

};

mycharts.setOption(option);

Copy after login

 接下来就是 ajax部分了 动态加载数据才是根本的 数据固定多没意思,来干了这碗孟婆汤 来世就做UI设计尸

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

$.ajax({

type: "get",

async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)

url: "../Handler/DepartmentHandler.ashx",

data: {},//demo 没加条件

dataType: "json", //返回数据形式为json

success: function (result) {

for (var i = 0; i < result.length; i++)

{

name.push(result[i].name);

}

mycharts.setOption({ //加载数据图表

legend:{data:name },

series: [{

data:result

}]

});

},

error: function (errorMsg) {

//请求失败时执行该函数

alert("图表请求数据失败!");

}

});

Copy after login

 ashx部分就简单多了 单纯的序列化数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

DataTable result = BLL.Department.GetDeptNumber();

List<object> list = new List<object>();

foreach (DataRow dr in result.Rows)

{

// 附上Echarts 所需的格式:[{value:335, name:'直接访问'}]

Deart d = new Deart();

d.value = Convert.ToInt32(dr["number"]);

//自己粗心 用values Echarts 不认 一直就是undefined

d.name = dr["D_Name"].ToString();

list.Add(d);

}

JavaScriptSerializer jss = new JavaScriptSerializer();

string json = jss.Serialize(list);

public class Deart //其实可以不用这么定义 自己保险让它出来的 value 值为int

{

public int value { get; set; }

public string name { get; set; }

}

Copy after login

附上效果图吧:

柱状图:

环境:Echarts 3.19 vs2013

实现方式:ajax+ashx+json

注意事项: 官网所需格式为:[5,6,7,9,34] 数组类型

具体代码,各位看官 请下移目光。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<!--js代码 --> <script src="../Scripts/jquery-1.8.2.min.js"></script>

<script src="../Scripts/echarts/echarts.min.js"></script>

<div>

<%--按钮触发--%>

<input type="button" id="btncanv" value="去吧 皮卡丘" />

</div>

<%--声明一个DIV 用来装Canvas绘制的图片--%>

<div id="contanis" style="width:1000px;height:800px" >

<script type="text/javascript">

$("#btncanv").click(function () {

//获取到绘制dom

var dom = document.getElementById("contanis");

var myChart = echarts.init(dom);

myChart.setOption({

title: {

text: '异步数据加载示例' //图片标题

},

tooltip: {},

legend: {

data: ['部门人口']

},

xAxis: {

data: []

},

yAxis: {},

series: [{

name: '2015',

type: 'bar',//可以更改为 line(折线)

data: [] //此处给空 后面用ajax给他赋值

}]

});

Copy after login

老规律 下面就是ajax 部分了 :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

myChart.showLoading(); //数据加载完之前先显示一段简单的loading动画

var names = []; //类别数组(实际用来盛放X轴坐标值)

var nums = []; //销量数组(实际用来盛放Y坐标值)

$.ajax({

type: "post",

async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)

url: "../Handler/DepartmentHandler.ashx", //请求发送到../Handler/DepartmentHandler处

data: {},

dataType: "json", //返回数据形式为json

success: function (result) {

//请求成功时执行该函数内容,result即为服务器返回的json对象

if (result) {

for (var i = 0; i < result.length; i++) {

names.push(result[i].name); //挨个取出类别并填入类别数组

}

for (var i = 0; i < result.length; i++) {

nums.push(result[i].values); //挨个取出销量并填入销量数组

}

myChart.hideLoading(); //隐藏加载动画

myChart.setOption({ //加载数据图表

xAxis:{data: names},

series: [{ data: nums }]

});

}

},

error: function (errorMsg) {

//请求失败时执行该函数

alert("图表请求数据失败!");

myChart.hideLoading();

}

})

});

Copy after login

附上效果图吧:


 其实option的设置是可以放在ajax里面的 一样会出效果 而且容易更看

就拿饼图来说吧 代码可以这么写啊

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

$.ajax({

type: "get",

async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)

url: "../Handler/DepartmentHandler.ashx",

data: {},//demo 没加条件

dataType: "json", //返回数据形式为json

success: function (result) { for (var i = 0; i < result.length; i++)

{

name.push(result[i].name);

}

option = {

title: {

text: '部门人口比例',

subtext: '测试数据',

x: 'center'

},

tooltip: {

trigger: 'item',

formatter: "{a} <br/>{b} : {c} ({d}%)"

},

legend: {

orient: 'vertical',

left: 'left',

data:name

},

series: [

{

name: '2012年度',

type: 'pie',

radius: '55%',

center: ['50%', '60%'],

data: result,

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

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

}

}

}

]

};

}, error: function (errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败!"); } });

Copy after login

如果你是想学习这个 作为一个吃过亏的菜鸟告诉你 先还是好好看看 官方的例子 然后理清思路在下手

以上所述是小编给大家介绍的基于Echarts 3.19 制作常用的图形(非静态)的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

How to merge array elements with the same ID into one object using JavaScript? How to merge array elements with the same ID into one object using JavaScript? Apr 04, 2025 pm 05:09 PM

How to merge array elements with the same ID into one object in JavaScript? When processing data, we often encounter the need to have the same ID...

Demystifying JavaScript: What It Does and Why It Matters Demystifying JavaScript: What It Does and Why It Matters Apr 09, 2025 am 12:07 AM

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

How to achieve parallax scrolling and element animation effects, like Shiseido's official website?
or:
How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? How to achieve parallax scrolling and element animation effects, like Shiseido's official website? or: How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? Apr 04, 2025 pm 05:36 PM

Discussion on the realization of parallax scrolling and element animation effects in this article will explore how to achieve similar to Shiseido official website (https://www.shiseido.co.jp/sb/wonderland/)...

The difference in console.log output result: Why are the two calls different? The difference in console.log output result: Why are the two calls different? Apr 04, 2025 pm 05:12 PM

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...

How to implement panel drag and drop adjustment function similar to VSCode in front-end development? How to implement panel drag and drop adjustment function similar to VSCode in front-end development? Apr 04, 2025 pm 02:06 PM

Explore the implementation of panel drag and drop adjustment function similar to VSCode in the front-end. In front-end development, how to implement VSCode similar to VSCode...

Is JavaScript hard to learn? Is JavaScript hard to learn? Apr 03, 2025 am 12:20 AM

Learning JavaScript is not difficult, but it is challenging. 1) Understand basic concepts such as variables, data types, functions, etc. 2) Master asynchronous programming and implement it through event loops. 3) Use DOM operations and Promise to handle asynchronous requests. 4) Avoid common mistakes and use debugging techniques. 5) Optimize performance and follow best practices.

See all articles