ChartServices Dev图形封装
.工具类ChartServices
using System;
using System.Data;
using System.Drawing;
using DevExpress.XtraCharts; namespace HraWeb.Common
{
public static class ChartServices
{
/// <summary>
/// 绘制图形
/// </summary>
/// <param name="control">图表控件</param>
/// <param name="seriesName">系列名</param>
/// <param name="type">类型</param>
/// <param name="dt">数据源</param>
/// <param name="column1"></param>
/// <param name="column2"></param>
public static void DrawChart(DevExpress.XtraCharts.Web.WebChartControl control, string seriesName, ViewType type, DataTable dt, string column1, string column2)
{
Series series = new Series(seriesName, type);
DataTable table = dt;
SeriesPoint point = null;
for (int i = ; i < table.Rows.Count; i++)
{
point = new SeriesPoint(table.Rows[i][column1].ToString(), Convert.ToDouble(table.Rows[i][column2].ToString()));
series.Points.Add(point);
}
control.Series.Add(series);
//针对饼图的特殊处理
if (type == ViewType.Pie)
{
//设置显示方式(Argument:显示图例说明,ArgumentAndValues:显示图例内容和数据)
series.Label.PointOptions.PointView = PointView.ArgumentAndValues;
//设置数据显示形式(Percent:百分比,Currency:货币类型,数据前添加¥,Scientific:科学计数法)
series.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
//数据是否保留小数(0:不保留小数位,1保留一位小数,2保留两位小数)
series.Label.PointOptions.ValueNumericOptions.Precision = ; //数据以百分比显示时只能是Default和None
((PieSeriesLabel)series.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
}
} /// <summary>
/// 设置图表标题
/// </summary>
/// <param name="control">图表控件</param>
/// /// <param name="isVisible">标题是否可见</param>
/// <param name="text">标题文本</param>
/// <param name="isWordWrop">是否换行</param>
/// <param name="maxLineCount">最大允许行数</param>
/// <param name="alignment">对齐方式</param>
/// <param name="dock">位置</param>
/// <param name="isAntialiasing">是否允许设置外观</param>
/// <param name="font">字体</param>
/// <param name="textColor">文本颜色</param>
/// <param name="indent">字体缩进值</param>
public static void SetChartTitle(DevExpress.XtraCharts.Web.WebChartControl control, bool isVisible, String text, bool isWordWrop, int maxLineCount, StringAlignment alignment, ChartTitleDockStyle dock, bool isAntialiasing, Font font, Color textColor, int indent)
{
//设置标题
ChartTitle title = new ChartTitle();
title.Visible = isVisible;
//显示文本
title.Text = text;
//是否允许换行
title.WordWrap = isWordWrop;
//最大允许行数
title.MaxLineCount = maxLineCount;
//对齐方式
title.Alignment = alignment;
//位置
title.Dock = dock;
//是否允许设置外观
title.Antialiasing = isAntialiasing;
//字体
title.Font = font;
//字体颜色
title.TextColor = textColor;
//缩进值
title.Indent = indent;
control.Titles.Add(title);
} /// <summary>
/// 为X轴添加标题
/// </summary>
/// <param name="control">图形控件</param>
/// <param name="isVisible">标题是否可见</param>
/// <param name="aligment">对齐方式</param>
/// <param name="text">标题显示文本</param>
/// <param name="color">标题字体颜色</param>
/// <param name="isAntialiasing">是否允许设置外观</param>
/// <param name="font">字体</param>
public static void SetAxisX(DevExpress.XtraCharts.Web.WebChartControl control, bool isVisible, StringAlignment aligment, string text, Color color, bool isAntialiasing, Font font)
{
XYDiagram xydiagram = (XYDiagram)control.Diagram;
xydiagram.AxisX.Title.Visible = isVisible;
xydiagram.AxisX.Title.Alignment = aligment;
xydiagram.AxisX.Title.Text = text;
xydiagram.AxisX.Title.TextColor = color;
xydiagram.AxisX.Title.Antialiasing = isAntialiasing;
xydiagram.AxisX.Title.Font = font;
} /// <summary>
/// 为X轴添加标题
/// </summary>
/// <param name="control">图形控件</param>
/// <param name="isVisible">标题是否可见</param>
/// <param name="aligment">对齐方式</param>
/// <param name="text">标题显示文本</param>
/// <param name="color">标题字体颜色</param>
/// <param name="isAntialiasing">是否允许设置外观</param>
/// <param name="font">字体</param>
public static void SetAxisY(DevExpress.XtraCharts.Web.WebChartControl control, bool isVisible, StringAlignment aligment, string text, Color color, bool isAntialiasing, Font font)
{
XYDiagram xydiagram = (XYDiagram)control.Diagram;
xydiagram.AxisY.Title.Visible = isVisible;
xydiagram.AxisY.Title.Alignment = aligment;
xydiagram.AxisY.Title.Text = text;
xydiagram.AxisY.Title.TextColor = color;
xydiagram.AxisY.Title.Antialiasing = isAntialiasing;
xydiagram.AxisY.Title.Font = font;
}
}
}
.webform.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="HraWeb.WebForm2" %> <%@ Register assembly="DevExpress.XtraCharts.v15.1.Web, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.XtraCharts.Web" tagprefix="dxchartsui" %>
<%@ Register TagPrefix="dx" Namespace="DevExpress.Web" Assembly="DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" %> <%@ Register assembly="DevExpress.XtraCharts.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.XtraCharts" tagprefix="cc1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<dxchartsui:WebChartControl ID="WebChartControl5" runat="server" CrosshairEnabled="True" Height="200px" PaletteName="Flow" Width="229px">
<seriesserializable>
<cc1:Series Name="Series 1">
<points>
<cc1:SeriesPoint ArgumentSerializable="" Values="">
</cc1:SeriesPoint>
<cc1:SeriesPoint ArgumentSerializable="" Values="">
</cc1:SeriesPoint>
<cc1:SeriesPoint ArgumentSerializable="" Values="">
</cc1:SeriesPoint>
<cc1:SeriesPoint ArgumentSerializable="" Values="">
</cc1:SeriesPoint>
<cc1:SeriesPoint ArgumentSerializable="" Values="">
</cc1:SeriesPoint>
</points>
<viewserializable>
<cc1:FunnelSeriesView>
</cc1:FunnelSeriesView>
</viewserializable>
</cc1:Series>
</seriesserializable>
</dxchartsui:WebChartControl> <dx:ASPxGridView ID="ASPxGridView1" runat="server" KeyFieldName="类型" Caption="公司基本面信息" Width="600px" >
<SettingsPager Visible="False">
</SettingsPager>
<Styles>
<AlternatingRow Enabled="true" BackColor="#D5FEFF" />
</Styles>
</dx:ASPxGridView>
<dxchartsui:WebChartControl ID="WebChartControl2" runat="server" Width="600px" Height="300px" AppearanceNameSerializable="Gray" CrosshairEnabled="True" PaletteName="Green">
</dxchartsui:WebChartControl> <table>
<td>
<dxchartsui:WebChartControl ID="WebChartControl4" runat="server" Width="300px" Height="250px" AppearanceNameSerializable="Gray" CrosshairEnabled="True" PaletteName="Green">
</dxchartsui:WebChartControl>
</td>
<td>
<dxchartsui:WebChartControl ID="WebChartControl6" runat="server" Width="300px" Height="250px" AppearanceNameSerializable="Gray" CrosshairEnabled="True" PaletteName="Green">
</dxchartsui:WebChartControl>
</td>
</table> <dxchartsui:WebChartControl ID="WebChartControl3" runat="server" Width="600px" Height="300px" AppearanceNameSerializable="Gray" CrosshairEnabled="True" PaletteName="Green">
</dxchartsui:WebChartControl>
<dxchartsui:WebChartControl ID="WebChartControl1" runat="server" Width="600px" Height="300px" AppearanceNameSerializable="Gray" CrosshairEnabled="True" PaletteName="Green">
</dxchartsui:WebChartControl>
<dx:ASPxGridView ID="ASPxGridView2" runat="server" KeyFieldName="类型" Caption="公司基本面信息" Width="600px" >
<SettingsPager Visible="False">
</SettingsPager>
<Styles>
<AlternatingRow Enabled="true" BackColor="#D5FEFF" />
</Styles>
</dx:ASPxGridView>
<dx:ASPxGridView ID="ASPxGridView3" runat="server" KeyFieldName="类型" Caption="公司基本面信息" Width="600px" >
<SettingsPager Visible="False">
</SettingsPager>
<Styles>
<AlternatingRow Enabled="true" BackColor="#D5FEFF" />
</Styles>
</dx:ASPxGridView>
</div>
</form>
</body>
</html>
.webform.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using DevExpress.XtraCharts;
using System.Drawing;
using DevExpress.Web;
using Framework;
using HraWeb.Common; namespace HraWeb
{
public partial class WebForm2 : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{ DataTable dt = CreateData(); this.ASPxGridView1.DataSource = dt;
this.ASPxGridView1.DataBind();
this.ASPxGridView2.DataSource = dt;
this.ASPxGridView2.DataBind();
this.ASPxGridView3.DataSource = dt;
this.ASPxGridView3.DataBind();
for (int i = ; i < ASPxGridView1.Columns.Count; i++) this.ASPxGridView1.DataSource = dt;
this.ASPxGridView1.DataBind();
for (int i = ; i < ASPxGridView1.Columns.Count; i++)
{
ASPxGridView1.Columns[i].HeaderStyle.BackColor = Color.Green;
ASPxGridView1.Columns[i].HeaderStyle.ForeColor = Color.White;
}
for (int i = ; i < ASPxGridView2.Columns.Count; i++)
{
ASPxGridView2.Columns[i].HeaderStyle.BackColor = Color.Green;
ASPxGridView2.Columns[i].HeaderStyle.ForeColor = Color.White;
}
for (int i = ; i < ASPxGridView3.Columns.Count; i++)
{
ASPxGridView3.Columns[i].HeaderStyle.BackColor = Color.Green;
ASPxGridView3.Columns[i].HeaderStyle.ForeColor = Color.White;
}
}
ASPxGridView1.HtmlDataCellPrepared += ASPxGridView1_HtmlDataCellPrepared;
ASPxGridView2.HtmlDataCellPrepared += ASPxGridView2_HtmlDataCellPrepared;
ASPxGridView3.HtmlDataCellPrepared += ASPxGridView3_HtmlDataCellPrepared; this.DrawBar();
this.DrawLine();
this.DrawPie();
this.DrawBarAndLine();
} private void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
{ if (e.DataColumn.FieldName == "类型") {
e.Cell.BackColor = Color.Green;
e.Cell.ForeColor = Color.White;
}
}
private static Contract.IService.IDaoService GetDao()
{
Spring.Context.IApplicationContext ctx = Spring.Context.Support.ContextRegistry.GetContext();
Contract.IService.IDaoService _dao = (Contract.IService.IDaoService)ctx["DaoService"];
return _dao; }
private void ASPxGridView2_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
{ if (e.DataColumn.FieldName == "类型") {
e.Cell.BackColor = Color.Green;
e.Cell.ForeColor = Color.White;
}
}
private void ASPxGridView3_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
{ if (e.DataColumn.FieldName == "类型") {
e.Cell.BackColor = Color.Green;
e.Cell.ForeColor = Color.White;
}
} public static DataTable GetWeekMoneyAndCost()
{
var Dao = GetDao();
QueryInfo dtInfo = new QueryInfo();
dtInfo.CustomSQL = @"
select '2013年年度' type,t.total_asset value1,t.sale_revenue value2,t.return_total_asset value3,t.inventory_turnover value4,
t.current_ratio value5,t.sale_cash_ratio value6,6.5 z_score,6.3 ANN from ccr_credit_input_data t where t.input_date=to_date('2013/12/31','yyyy/mm/dd') and t.company_name=209045 and t.purpose=102601 union all select '2014年年度' type,t.total_asset value1,t.sale_revenue value2,t.return_total_asset value3,t.inventory_turnover value4,
t.current_ratio value5,t.sale_cash_ratio value6, 6.5 z_score,6.3 ANN from ccr_credit_input_data t where t.input_date=to_date('2013-12-31','yyyy-mm-dd') and t.company_name=209039 and t.purpose=102601
";
DataTable dt2 = Dao.ExcuteDataSet(dtInfo).Tables[]; return dt2;
} private DataTable CreateData()
{
QueryInfo dtInfo = new QueryInfo();
dtInfo.CustomSQL = @"
select '2013年年度' type,t.total_asset value1,t.sale_revenue value2,t.return_total_asset value3,t.inventory_turnover value4,
t.current_ratio value5,t.sale_cash_ratio value6,6.5 z_score,6.3 ANN from ccr_credit_input_data t where t.input_date=to_date('2013/12/31','yyyy/mm/dd') and t.company_name=209045 and t.purpose=102601 union all select '2014年年度' type,t.total_asset value1,t.sale_revenue value2,t.return_total_asset value3,t.inventory_turnover value4,
t.current_ratio value5,t.sale_cash_ratio value6, 6.5 z_score,6.3 ANN from ccr_credit_input_data t where t.input_date=to_date('2013-12-31','yyyy-mm-dd') and t.company_name=209039 and t.purpose=102601
";
DataTable dt2 = Dao.ExcuteDataSet(dtInfo).Tables[]; DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("类型"));
dt.Columns.Add(new DataColumn("总资产", typeof(decimal)));
dt.Columns.Add(new DataColumn("销售收入", typeof(decimal)));
dt.Columns.Add(new DataColumn("总资产报酬率", typeof(decimal)));
dt.Columns.Add(new DataColumn("存货周转率", typeof(decimal)));
dt.Columns.Add(new DataColumn("流动比率", typeof(decimal)));
dt.Columns.Add(new DataColumn("销售现金比率", typeof(decimal))); foreach (DataRow row in dt2.Rows)
{
dt.Rows.Add(new object[] { row[], row[], row[], row[], row[], row[], row[] });
}
return dt;
} /// <summary>
/// 绘制柱状图
/// </summary>
private void DrawBar()
{ ChartServices.SetChartTitle(this.WebChartControl1, true, "神经网络结构拟合情况表", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.Blue, ); //如不需显示图表标题可不用调用本段代码,下同
ChartServices.DrawChart(this.WebChartControl1, "Z SCORE", ViewType.Bar, GetWeekMoneyAndCost(), "TYPE", "Z_SCORE");
ChartServices.DrawChart(this.WebChartControl1, "ANN", ViewType.Bar, GetWeekMoneyAndCost(), "TYPE", "ANN");
} /// <summary>
/// 绘制折线图
/// </summary>
private void DrawLine()
{
ChartServices.SetChartTitle(this.WebChartControl3, true, "2012年12月第1周收入情况", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.OrangeRed, );
ChartServices.DrawChart(this.WebChartControl3, "收益", ViewType.Line, GetWeekMoneyAndCost(), "TYPE", "Z_SCORE");
ChartServices.DrawChart(this.WebChartControl3, "成本", ViewType.Line, GetWeekMoneyAndCost(), "TYPE", "ANN");
} /// <summary>
/// 柱状图和折线图在同一图表中
/// </summary>
private void DrawBarAndLine()
{
ChartServices.SetChartTitle(this.WebChartControl2, true, "2012年12月第1周收入情况", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.Red, );
ChartServices.DrawChart(this.WebChartControl2, "收益", ViewType.Bar, GetWeekMoneyAndCost(), "TYPE", "Z_SCORE");
ChartServices.DrawChart(this.WebChartControl2, "成本", ViewType.Bar, GetWeekMoneyAndCost(), "TYPE", "ANN");
ChartServices.SetChartTitle(this.WebChartControl2, false, "2012年12月第1周收入情况", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.Red, );
ChartServices.DrawChart(this.WebChartControl2, "收益", ViewType.Line, GetWeekMoneyAndCost(), "TYPE", "Z_SCORE");
ChartServices.DrawChart(this.WebChartControl2, "成本", ViewType.Line, GetWeekMoneyAndCost(), "TYPE", "ANN");
} /// <summary>
/// 绘制饼图
/// </summary>
private void DrawPie()
{
ChartServices.SetChartTitle(this.WebChartControl4, true, "2012年12月第1周收入情况", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.Red, );
ChartServices.DrawChart(this.WebChartControl4, GetWeekMoneyAndCost().Rows[][].ToString(), ViewType.Pie, GetWeekMoneyAndCost(), "TYPE", "Z_SCORE");
ChartServices.SetChartTitle(this.WebChartControl6, true, "2012年12月第1周收入情况", true, , StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", , FontStyle.Bold), Color.Red, );
ChartServices.DrawChart(this.WebChartControl6, GetWeekMoneyAndCost().Rows[][].ToString(), ViewType.Pie, GetWeekMoneyAndCost(), "TYPE", "ANN");
}
}
}
ChartServices Dev图形封装的更多相关文章
- Android——Canvas类的学习
转:http://blog.sina.com.cn/s/blog_61ef49250100qw9x.html 今晚瞎折腾,闲着没事画了个机器人——android,浪费了一个晚上的时间.画这丫还真不容易 ...
- 转:桥接模式(Bridge)
转自:http://www.cnblogs.com/rush/archive/2011/06/29/2093743.html 分析十分透彻明了 可以再结合另外一篇文章中的示例理解(http://b ...
- canvas绘图动画细节
1.canvas动画不能像操作DOM那样修改一个元素的top和left值就能移动.canvas要移动一个元素需要重绘,在重绘的时候修改相应的值.将绘制的图形封装成一个函数,这样才方便重绘.2.在重绘的 ...
- Devexpress中WebChartControl控件柱状统计图的做法(数据为调用存储过程)
//前台控件代码:WebChartControl控件: <%-- 月采购量统计--%> <dxchartsui:WebChartControl ID="WebChartCo ...
- iOS本地动态验证码生成-b
用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #imp ...
- 安卓 canvas
[转]http://blog.sina.com.cn/s/blog_61ef49250100qw9x.html(easy) [转]http://blog.csdn.net/rhljiayou/arti ...
- python 机器学习三剑客 之 Matplotlib
Matplotlib介绍: Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 . 通过 Matplotlib,开发者可以仅需要几 ...
- Android 中的Canvas画图
Android中有一个Canvas类,Canvas类就是表示一块画布,你可以在上面画你想画的东西.当然,你还可以设置画布的属性,如画布的颜色/尺寸等.Canvas提供了如下一些方法: Canvas() ...
- d3与echarts的区别
1. 目前各大公司的大数据平台多使用d3还是echarts?什么时候适合用echarts,什么时候适合用d3? 在我看几种数据可视化平台多使用折线图,面积图和柱状图,条图居多,对于echarts和d3 ...
随机推荐
- 第六百一十六天 how can I 坚持
有时间还是多学点东西吧,webservice.. 晚上看了个电影<我们的十年>,乔任梁死了..买了个大柚子,上火好难受.有些困惑啊. 有没有梦想,只是不想让人来到这这个世界,什么都没留下就 ...
- Linux Shell ---系统命令(1)
date命令 功能说明:显示或设置系统时间与日期. 语 法: date [-d <字符串>][-u][+%H%I%K%l%M%P%r%s%S%T%X%Z%a%A%b%B%c%d%D%j%m ...
- Redis性能点
AliRedis是来自阿里巴巴的基于Redis改造的缓存产品,目前还未开源.网上只能搜到这么一篇资料<AliRedis单机180w QPS, 8台服务器构建1000w QPS Cache集群&g ...
- 为什么C语言中的数组序号都是从0开始
这个规则并不是在所有计算机语言上通行的,例如Matlab上就是从1开始. 这个规则是从内存寻址设计上继承来的,因为在如100个元素的数组对应的内存单元中,从内存地址位0开始到内存地址为99,总共记录9 ...
- Linux 之集群 LVS
查看系统是否支持IPVS功能 [root@nginx ~]# grep -i 'ipvs' /boot/config-2.6.18-308.el5 # IPVS transport protocol ...
- 使用scala开发spark入门总结
使用scala开发spark入门总结 一.spark简单介绍 关于spark的介绍网上有很多,可以自行百度和google,这里只做简单介绍.推荐简单介绍连接:http://blog.jobbole.c ...
- 第一部分:C9高校、985和211、双一流
第一部分:C9高校.985和211.双一流 C9高校,包括:清北.复交.浙南.中科大西交大和哈工大.1998年5月4日,时任国家主席江.泽.民在庆祝北京大学建校100周年大会上代表中国共.产.党和中华 ...
- Matlab melband的计算
%% mel bankmelnum = 24;low = 0;high = 0.5;melbank=melbankm(melnum,fftsize,Fs,low,high,'m');%归一化mel滤波 ...
- web前端相关网站
传智播客. (有很多公开课的,而且他的百度云盘也有很多东西) http://www.itcast.cn/(这个不是广告,爱信不信) 慕课网 ...
- [专题论文阅读]【分布式DNN训练系统】 FireCaffe
FireCaffe Forrest N. Iandola FireCaffe: near-linear acceleration of deep neural network training on ...