echarts呈现数据表图形
讲一下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呈现数据表图形的更多相关文章
- SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...
- ECharts – 大数据时代,重新定义数据图表
ECharts 基于 Canvas 的纯 Javascript 图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对 ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
- 【Reporting Services 报表开发】— 数据表的使用
一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3 二.在报表文件 ...
- SQL笔记-第二章,数据表的创建和管理
数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号 ...
- oracle的学习 第二节:创建数据表
学习内容: A.创建数据库和表空间 B.创建用户和分配权限 C.创建数据表 一.创建数据库和表空间 (一)SQL语言的基本概念 1.概念 高级的结构化查询语言:沟通数据库服务器和客户的重要桥梁. PL ...
- 数据库之mysql篇(3)—— mysql创建/修改数据表/操作表数据
创建数据表:create table 数据表名 1.创建表规范 create table 表名( 列名 数据类型 是否为空 自动排序/默认值 主键/外键/唯一键, 列名 数据类型 ...
- MySQL之数据表(五)
1.数据表是数据库的重要内容,首先打开数据库. USE DATABASE; mysql> SHOW DATABASES;+--------------------+| Database |+-- ...
- Mysql大数据表优化处理
原文链接: https://segmentfault.com/a/1190000006158186 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表 ...
随机推荐
- C++ define与const
C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下: 用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常 ...
- 把System.Drawing.Image对象img,在页面的Image控件上显示出来
1.保存到本地,然后调用. //定义文件名 string iname = DateTime.Now.ToString("yyMMddhhmmss"); //保存到服务器,b是 ...
- 11-st跳舞消耗体力最少
/* 炫舞家 ST 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ...
- B/S与C/S的比较
1.C/S需要安装客户端软件,比如我们的qq就是C/S模式下的软件.如果使用这些软件我们必须先要下载客户端软件.如果软件更新了,就需要下载新的客户端进行更新. 2.B/S无需安装客户端软件,比如我们的 ...
- Spring框架之CGLIB的代理技术(代码了解)
1.引入CBLIB的开发包 * 如果想使用CGLIB的技术来生成代理对象,那么需要引入CGLIB的开发的jar包,在Spring框架核心包中已经引入了CGLIB的开发包了.所以直接引入Spring核心 ...
- Halcon的C#二次开发及经验分享
本文涉及面较广,因此很难在所有方面都讲解得很详细,故适合具有一定Halcon开发经验的人阅读. 1.Halcon二次开发的两种方式 ① 使用C#的语法方式逐句改写Halcon代码 优点:各种变量的类型 ...
- jquery正则表达式验证:验证身份证号码
需求说明: 前端页面使用正则表达式验证文本输入框输入的身份证号码是否符合规则. 代码说明: 这里只介绍正则表达式部分,其他部分的代码不做介绍.如有其它需求请自行修改即可. 步骤一:建立一个页面可以是h ...
- Golang之并发篇
进程和线程 A.进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位. B.线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. C.一 ...
- cookie、session、token区分
https://www.cnblogs.com/moyand/p/9047978.html http://www.cnblogs.com/JamesWang1993/p/8593494.html Co ...
- APP UI结构-首页功能点大集锦,很干很详细
APP UI结构的系列的文章有一段时间没有更新了,因为最近在学一些新东西和看一些新书籍,适当的给自己充电也是为了更好的输出,言归正传,今天想跟大家聊的是和首页相关的一些内容,可能有些内容最近有的小伙伴 ...