讲一下echarts的用法,列举了两个图表,一个是单柱图,一个是多柱图,至于饼状图,只许更改echarts的类型就好了

  一、首先是要两个div,用来存放两个图表

  <div class="div-frm" style="height: 275px; font-family: Microsoft YaHei, Verdana, Arial;">
<div id="barone" style="width: 100%; height: 240px; float: left; font-family: Microsoft YaHei, Verdana, Arial;"></div>
</div> <div style="height: 240px; font-family: Microsoft YaHei, Verdana, Arial;">
<div id="barthree" class="chart-container" style="width: 100%; height: 240px; float: left; font-family: Microsoft YaHei, Verdana, Arial;"></div>
</div>

  二、需要用js从后台获取json数据(可以从cs页面获取,也可以通过一般处理程序,这里用的一般处理程序)

<%--单个柱状图--%>
<script type="text/javascript"> //初始化
var dom = document.getElementById("barone");
var myChart = echarts.init(dom);
var app = {};
option = null;
markPoint = null; //图表使用
var option = {
title: {
text: '成绩图'
},
tooltip: {
trigger: 'axis'
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
calculable: true,
xAxis: [
{
type: 'category',
data: [""]
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
type: 'bar',
data: [""], //数据显示的地方,ajax
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
},
markLine: {
data: [
{ type: 'average', name: '平均值' }
]
},
}, ],
dataZoom: [
{
show: false,
start: 0,
end: 100
}
]
}; if (option && typeof option === "object") {
myChart.setOption(option, true);
} //获取数据
$.ajax({
url: "echartsData/barone.ashx", //数据来源
data: { type: "bar" },
cache: false,
async: false,
dataType: 'json',
success: function (data) {
if (data) {
myChart.setOption({ xAxis: [{ data: data.xAxis }],
series: [
{
data: data.series,
itemStyle: { //显示柱状图顶部的数字
normal: {
color: '#2d9fd8',
label: {
show: true,
position: 'top',
textStyle: {
baseline: "bottom"
}
}
}
},
barWidth: 20
}
]
});
}
},
error: function (msg) {
alert("系统发生错误1");
}
});
</script> <%-- 多个柱状图 --%>
<script type="text/javascript">
var dom = document.getElementById("barthree");
var myChart2 = echarts.init(dom);
var app = {};
option = null; var option = {
title: {
text: '成绩表'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['数学', '语文', '英语']
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
calculable: true,
xAxis: [
{
type: 'category',
data: [""]
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '访问来源',
type: 'bar',
data: [""],
itemStyle: {
normal: {
color: '#2d9fd8',
label: {
show: true,
position: 'top',
textStyle: {
baseline: "bottom"
}
}
}
},
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
},
markLine: {
data: [
{ type: 'average', name: '平均值' }
]
},
}
],
dataZoom: [
{
show: false,
start: 0,
end: 100
}
]
}; if (option && typeof option === "object") {
myChart2.setOption(option, true);
} $.ajax({
url: "echartsData/barthree.ashx",
data: { type: "bar" },
cache: false,
async: false,
dataType: 'json',
success: function (data) {
if (data) {
myChart2.setOption({
legend: [{ data: data.legend }],
xAxis: [{ data: data.xAxis }],
series: data.series
});
}
},
error: function (msg) {
alert("系统发生错误");
}
});
</script>

JS代码

  三、在后台,从数据库读取数据

        static string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
JavaScriptSerializer jsS = new JavaScriptSerializer();
List<object> seriesList = new List<object>();
List<string> xAxisList = new List<string>();
string result = ""; public void ProcessRequest(HttpContext context)
{
string command = context.Request["type"]; switch (command)
{
case "bar":
GetOverView(context);
break;
};
} public void GetOverView(HttpContext context)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = conStr;
conn.Open(); string sql = "select * from Achievement";
SqlDataAdapter myda = new SqlDataAdapter(sql, conStr);
DataTable dt = new DataTable(); // 实例化数据表
myda.Fill(dt); // 保存数据 foreach (DataRow dr in dt.Rows)
{
xAxisList.Add(dr["Name"].ToString());
seriesList.Add(dr["Math"].ToString());
} var newObj = new
{
xAxis = xAxisList,
series = seriesList
}; jsS = new JavaScriptSerializer();
result = jsS.Serialize(newObj);
context.Response.Write(result); conn.Close(); // 关闭数据库连接
}
}

单个柱状图读取方式

        static string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
JavaScriptSerializer jsS = new JavaScriptSerializer();
List<object> seriesList = new List<object>();
List<string> xAxisList = new List<string>();
List<string> legendList = new List<string>();
string result = ""; public void ProcessRequest(HttpContext context)
{
string command = context.Request["type"]; switch (command)
{
case "bar":
GetOverView(context);
break;
};
} public void GetOverView(HttpContext context)
{ using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = conStr;
conn.Open(); string sql = "select * from Achievement";
SqlDataAdapter myda = new SqlDataAdapter(sql, conStr);
DataTable dt = new DataTable(); // 实例化数据表
myda.Fill(dt); // 保存数据 legendList.Add("数学");
legendList.Add("语文");
legendList.Add("英语"); //设置对应的Series信息
Series UVSeriesObj = new Series();
UVSeriesObj.name = "数学";
UVSeriesObj.type = "bar"; //图呈现
UVSeriesObj.data = new List<object>(); Series UIPSeriesObj = new Series();
UIPSeriesObj.name = "语文";
UIPSeriesObj.type = "bar"; //图呈现
UIPSeriesObj.data = new List<object>(); Series PVSeriesObj = new Series();
PVSeriesObj.name = "英语";
PVSeriesObj.type = "bar"; //图呈现
PVSeriesObj.data = new List<object>(); foreach (DataRow dr in dt.Rows)
{
xAxisList.Add(dr["Name"].ToString()); UVSeriesObj.data.Add(dr["Math"]);
UIPSeriesObj.data.Add(dr["Chinese"]);
PVSeriesObj.data.Add(dr["English"]);
} seriesList.Add(UVSeriesObj);
seriesList.Add(UIPSeriesObj);
seriesList.Add(PVSeriesObj); var newObj = new
{
legend = legendList, //三门学科
xAxis = xAxisList,
series = seriesList
}; jsS = new JavaScriptSerializer();
result = jsS.Serialize(newObj);
context.Response.Write(result);
}
} public bool IsReusable
{
get
{
return false;
}
} class Series
{
/// <summary>
/// series序列组名称
/// </summary>
public string name
{
get;
set;
} /// <summary>
/// series序列组呈现图表类型(line、column、bar等)
/// </summary>
public string type
{
get;
set;
} /// <summary>
/// series序列组的数据为数据类型数组
/// </summary>
public List<object> data
{
get;
set;
}
}

多个柱状图读取方式

  

  echarts官方api文档:http://echarts.baidu.com/echarts2/doc/example.html

echarts呈现数据表图形的更多相关文章

  1. SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...

  2. ECharts – 大数据时代,重新定义数据图表

    ECharts 基于 Canvas 的纯 Javascript 图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对 ...

  3. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

  4. 【Reporting Services 报表开发】— 数据表的使用

    一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3 二.在报表文件 ...

  5. SQL笔记-第二章,数据表的创建和管理

    数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号 ...

  6. oracle的学习 第二节:创建数据表

    学习内容: A.创建数据库和表空间 B.创建用户和分配权限 C.创建数据表 一.创建数据库和表空间 (一)SQL语言的基本概念 1.概念 高级的结构化查询语言:沟通数据库服务器和客户的重要桥梁. PL ...

  7. 数据库之mysql篇(3)—— mysql创建/修改数据表/操作表数据

    创建数据表:create table 数据表名 1.创建表规范 create table 表名( 列名   数据类型    是否为空   自动排序/默认值  主键/外键/唯一键, 列名   数据类型 ...

  8. MySQL之数据表(五)

    1.数据表是数据库的重要内容,首先打开数据库. USE DATABASE; mysql> SHOW DATABASES;+--------------------+| Database |+-- ...

  9. Mysql大数据表优化处理

    原文链接: https://segmentfault.com/a/1190000006158186 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表 ...

随机推荐

  1. cdoj793-A Linear Algebra Problem

    http://acm.uestc.edu.cn/#/problem/show/793 A Linear Algebra Problem Time Limit: 3000/1000MS (Java/Ot ...

  2. nyoj528-找球号(三) 【位运算】

    http://acm.nyist.net/JudgeOnline/problem.php?pid=528 找球号(三) 时间限制:2000 ms  |  内存限制:3000 KB 难度:2   描述 ...

  3. form表单的默认提交行为

    一 如果<form></form>表单中只有一个<input type="text"/>,则使文本框获取焦点,并单击回车,form会自动提交. ...

  4. C++,坑...

    如果使用const全局变量,记得声明处的引用处都加extern. uint32_t等,t代表是typedef的,在stdint.h头文件里,C99后引入,记得先测试再用. accept函数的参数,记得 ...

  5. LeetCode包括main函数的答题框架(Java+Eclipse)

    http://zhangnai.xin/2016/09/20/LeetCode-Framework/ 目录结构: LeetCode ——项目名称,方便Eclipse内置Git对代码进行管理和多终端同步 ...

  6. 在IE10下,DropDownList的AutoPostBack不能触发

    Default.aspx 文件 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile=" ...

  7. mysql中GROUP_CONCAT的使用

    现在有三个表,结构如下: cate表 CREATE TABLE `cate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', ...

  8. 自动化部署nginx负载均衡及监控短信报警

    题: 开发脚本自动部署及监控 1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: II.所有web服务使用共享存储nfs,保证所有 ...

  9. Linux gprof命令

    一.简介 gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂. ...

  10. Netty 系列(三)Netty 入门

    Netty 系列(三)Netty 入门 Netty 是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络服务器和客户端程序.更多请参考:Netty Github 和 Netty中文 ...