讲一下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. form表单的默认提交行为

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

  2. 中文路径读取乱码,json乱码

    strPath = 'E:\新建文件夹' #含有中文的路径,使用unicode函数转换. strPath = unicode(strPath , "utf8") 参考:http:/ ...

  3. mockito使用

    mockito学习资料: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html http://blog.csdn.net/sdy ...

  4. loadrunner12-查看controller运行报错详细log

    1.路径为controller-->results-->results setting 2.打开文件夹res/log/***.log,里面会有当前场景运行的log日志. 注:启用这个首先保 ...

  5. [Meteor] meteor project structure

  6. 在原型设计上,UI和UX设计师有哪三个区别?

    原型设计在日常的软件开发过程中是必不可少的,不管是UI还是UX设计师,很多工作都会涉及到原型设计.那么这两类设计师在设计原型的时候表现出了哪些的不同点呢?今天就让我们来讨论一下,先说说我发现的3个不同 ...

  7. datagrid分页 从后端获取数据也很简单

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Datagrid.aspx. ...

  8. centos 挂载u盘

    1.创建一个目录来挂载U盘 mkdir /mnt/usb #创建usb目录挂载U盘 2.插上U盘,查看移动设备状态 fdisk -l #(注意:参数是小写字母 l 不是数字 1) 会看到类似这一行:/ ...

  9. highcharts点击事件系列

    http://www.highcharts.com/demo/line-ajax 参考设置(bar 柱状图) plotOptions: {                series: {       ...

  10. CentOS 6.5 搭建cuda环境

    首先这一篇文章是我搞了N多天后,才成功一点经验,为了不至于下次搭建时忘记,所以记录下来.nivida官网有一个文档,大家可以下载看一下 https://developer.nvidia.com/cud ...