讲一下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. Winsock版本的“hello world!”

    1.基于TCP协议的“hello world!” 1)服务器端:WSAStartup()->socket()->bind()->listen()->accept()->s ...

  2. 关于"undefined reference"错误

    这个错误换句话说: 链接的时候找不到实现的文件(谨记从这个入手!). 可能导致的原因有: 1. 没有链接库文件,包括静态库或动态库. 2. 链接文件的顺序问题,先后依赖问题,把被依赖的放后面. 3. ...

  3. 两台Linux之间传文件

    安装sudo apt-get install openssh-client openssh-server 使用scp命令: scp john@~/hallo.h /usr/include 将左边移动到 ...

  4. 条款1:视C++为一个语言联邦

    C++是门多范式语言,至少包括面向过程,面向对象,泛型,函数式,元变成等. 但谨记,不要随意混合使用各种特性,为自己制定使用原则,针对不同项目.业务. 如: 类C风格编程:没有模板,没有异常,没有重载 ...

  5. 【vs2010】转换到 COFF 期间失败: 文件无效或损坏

    不知怎么本来编译好好的VS2010环境,忽然出现“转换到COFF 期间失败:文件无效或损坏”的链接错误.花了好多天,试了好多方法,最终解决了这个问题. 现在罗列一下这几种解决方案: 方案1:      ...

  6. jmeter完成数据批量添加

    Jmeter结构如图 目的: 需要在每个组织下面分别添加5个设备资源 思路: 1.先登录平台 2.进入系统配置页面 3.获取到每个区域的ID 4.在每个区域下面添加设备资源 重点及难点: 1.登录加密 ...

  7. 关于前一篇innodb自增列自己的一点补充

    上篇文章是我转载的,忘记注明了出处,在这里深感歉意.但是上篇文章中关于自增列预留ID的计算我当时怎么弄明白,后来自己想了想终于想通了,在这里详细解释一下. 我们以一次性插入10行为例,表格如下:  插 ...

  8. ObjC.instancetype

    1. instancetype http://nshipster.com/instancetype/ 2. Objc的扩展 http://clang.llvm.org/docs/LanguageExt ...

  9. python如何查看有哪些模块

    Question: 如何查看正则表达式模块re及其相关函数的意义 1.终端命令行下 python >> import sys >> sys.modules ########## ...

  10. laravel使用$errors提取错误信息

    1.控制器 2.模板