using System;

using System.Data;

using System.Windows.Forms;

using DevExpress.XtraCharts;
namespace DevExpressChart { public partial class winDateTime : Form { public winDateTime() { InitializeComponent(); }
private void winDateTime_Load(object sender, EventArgs e) { BuilderDevChart(); } private DataTable CreateChartData() { DataTable table = new DataTable("Table1"); table.Columns.Add("Date", typeof(DateTime)); table.Columns.Add("Value", typeof(Int32)); table.Rows.Add(new object[] { new DateTime(2014, 5, 21), 10 }); table.Rows.Add(new object[] { new DateTime(2014, 6, 22), 20 }); table.Rows.Add(new object[] { new DateTime(2014, 7, 23), 40 }); table.Rows.Add(new object[] { new DateTime(2014, 8, 24), 20 }); table.Rows.Add(new object[] { new DateTime(2014, 9, 25), 30 }); return table; } private void BuilderDevChart() { Series _lineSeries = new Series("利润", ViewType.Line); _lineSeries.ArgumentScaleType = ScaleType.DateTime; _lineSeries.ArgumentDataMember = "Date"; _lineSeries.ValueDataMembers[0] = "Value"; _lineSeries.DataSource = CreateChartData(); chartControl1.Series.Add(_lineSeries);
chartControl1.SetTimeAxisX(DateTimeMeasurementUnit.Month, DateTimeMeasurementUnit.Month, "yyyy-MM"); //---------------------------------------------------------------
//_lineSeries.ValueScaleType = ScaleType.DateTime; //_lineSeries.ArgumentDataMember = "Value"; //_lineSeries.ValueDataMembers[0] = "Date"; //_lineSeries.DataSource = CreateChartData(); //chartControl1.Series.Add(_lineSeries);
//XYDiagram _diagram = (XYDiagram)chartControl1.Diagram; //_diagram.AxisY.DateTimeMeasureUnit = DateTimeMeasurementUnit.Month; //_diagram.AxisY.DateTimeGridAlignment = DateTimeMeasurementUnit.Month; //_diagram.AxisY.DateTimeOptions.Format = DateTimeFormat.Custom; //_diagram.AxisY.DateTimeOptions.FormatString = "MMMM"; } } }
using DevExpress.Utils;

using DevExpress.XtraCharts;
namespace DevExpressChart { public static class ChartUtils { /// <summary> /// 增加数据筛选 /// </summary> /// <param name="SeriesBase">Series</param> /// <param name="columnName">列名称</param> /// <param name="value">列名称对应的筛选数值</param> /// <param name="dataFilterCondition">DataFilterCondition枚举</param> public static void AddDataFilter(this SeriesBase series, string columnName, object value, DataFilterCondition dataFilterCondition) { series.DataFilters.Add(new DataFilter(columnName, value.GetType().FullName, dataFilterCondition, value)); }
/// <summary> /// 设置X轴Lable角度 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="angle">角度</param> public static void SetXLableAngle(this ChartControl chart, int angle) { XYDiagram _xyDiagram = (XYDiagram)chart.Diagram; if (_xyDiagram != null) _xyDiagram.AxisX.Label.Angle = angle; } /// <summary> /// 设置Y轴Lable角度 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="angle">角度</param> public static void SetYLableAngle(this ChartControl chart, int angle) { XYDiagram _xyDiagram = (XYDiagram)chart.Diagram; _xyDiagram.AxisY.Label.Angle = angle; } /// <summary> /// 设置ColorEach /// </summary> /// <param name="chart">ChartControl</param> /// <param name="colorEach">是否设置成ColorEach</param> public static void SetColorEach(this Series series, bool colorEach) { SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View; if (colorEachView != null) { colorEachView.ColorEach = colorEach; } } /// <summary> /// 设置是否显示十字标线 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="crosshair">是否显示十字标线</param> public static void SetCrosshair(this ChartControl chart, bool crosshair) { chart.CrosshairEnabled = crosshair ? DefaultBoolean.True : DefaultBoolean.False; chart.CrosshairOptions.ShowArgumentLabels = crosshair; chart.CrosshairOptions.ShowArgumentLine = crosshair; chart.CrosshairOptions.ShowValueLabels = crosshair; chart.CrosshairOptions.ShowValueLine = crosshair; } /// <summary> /// 新增ChartControl的Title文字 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="title">Title文字</param> public static void AddTitle(this ChartControl chart, string title) { ChartTitle _title = new ChartTitle(); _title.Text = title; chart.Titles.Add(_title); } /// <summary> /// 饼状Series设置成百分比显示 /// </summary> /// <param name="series">Series</param> public static void SetPiePercentage(this Series series) { if (series.View is PieSeriesView) { ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true; ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent; ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0; } } /// <summary> /// 将X轴格式化成时间轴 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="dateTimeMeasureUnit">X轴刻度单位</param> /// <param name="dateTimeGridAlignment">X轴刻度间距的单位</param> public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasurementUnit dateTimeMeasureUnit, DateTimeMeasurementUnit dateTimeGridAlignment) { XYDiagram _diagram = (XYDiagram)chart.Diagram; if (_diagram != null) { _diagram.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Month;//X轴刻度单位 _diagram.AxisX.DateTimeGridAlignment = DateTimeMeasurementUnit.Month;//X轴刻度间距 } } /// <summary> /// 将X轴格式化成时间轴 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="dateTimeMeasureUnit">X轴刻度单位</param> /// <param name="dateTimeGridAlignment">X轴刻度间距的单位</param> /// <param name="formatString">时间格式;eg:yyyy-MM</param> public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasurementUnit dateTimeMeasureUnit, DateTimeMeasurementUnit dateTimeGridAlignment, string formatString) { XYDiagram _diagram = (XYDiagram)chart.Diagram; if (_diagram != null) { _diagram.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Month;//X轴刻度单位 _diagram.AxisX.DateTimeGridAlignment = DateTimeMeasurementUnit.Month;//X轴刻度间距 _diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom; _diagram.AxisX.DateTimeOptions.FormatString = formatString; } } } }

运行效果如下图所示:

DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些?

关于图表优化,可从以下几个方面解决:

1.关闭不需要的可视化的元素(如LineMarkers, Labels等): Series.View.LineMarkerOptions.Visible =false.

2. 关闭图表的滚动与缩放功能,手动调整范围,这样将大大减少所需计算的个数。

3. 将 ChartControl.RefreshDataOnRepaint属性设为false

4. 将 ChartControl.CacheToMemory属性设为true,这样将通过缓存提供图表性能及内存消耗。

5. 将ChartControl.RuntimeHitTesting属性设为false。这样将禁用聚焦检查及测试,提供图表重绘速度.

____

http://www.devexpresscn.com/DevExpress-Resources/Documentation-17.html

DevExpress之ChartControl实现时间轴实例 z的更多相关文章

  1. [DevExpress]ChartControl之时间轴示例

    关键代码: using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; name ...

  2. 【原】为DevExpress的ChartControl添加Y轴控制 和 GridControl中指定列添加超级链接

    一.控制ChartControl的Y轴范围 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件,具体代码如下: ...

  3. ECharts实例开发学习笔记二——时间轴

    记录一下ECharts时间轴的使用,首先是照着官方的示例做一遍,在这里不要忘了引入timelineOption.js,后面介绍如何动态创建时间轴的记录数,即根据需求可伸缩显示有多少天或者年月等轴标记数 ...

  4. 【前端图表】echarts实现散点图x轴时间轴

    话不多说,老规矩,先上图,实现echarts实现散点图,x轴数据为时间年月日. 实现代码如下: <!DOCTYPE html> <html> <head> < ...

  5. PHP通用函数 - 日期生成时间轴

    /** * 时间轴函数, Unix 时间戳 * @param int $time 时间 */ function TranTime($time) { //$time = strtotime($time) ...

  6. android 简易时间轴(实质是ListView)

    ListView的应用 1.在很多时候是要用到时间轴的,有些处理的时间轴比较复杂,这里就给出一个比较简单的时间轴,其实就是ListView里面的Item的设计. 直接上代码: ListView,ite ...

  7. 超炫的时间轴jquery插件Timeline Portfolio

    Timeline Portfolio是一款按时间顺序专业显示事件的jquery时间轴插件,可以根据时间的先后嵌入各种媒体包括微博,视频和地图等.这个展现的模式非常适合设计师的作品集和个人简历的展示.T ...

  8. HTML5+CSS3实现的响应式垂直时间轴

    <!DOCTYPE HTML><html><head><meta charset="utf-8"><meta name=&qu ...

  9. echarts之简单的入门——【一】做个带时间轴的柱状统计图

    百度Echarts 官网首页  http://echarts.baidu.com/ 配置项手册 http://echarts.baidu.com/option.html#title GL配置项手册 h ...

随机推荐

  1. UnxUtils让windows下的dos命令变为linux下的命令

    一.UnxUtils UnxUtils是一个可以支持在Windows下使用linux命令的工具,用习惯了linux之后,感觉Windows的dos命令实在是太难用了,发现了这个工具,非常的小,装了它之 ...

  2. centos7 配置php-fpm

    1.复制相应的文件cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.confcp /usr/local/p ...

  3. CSS生成小三角

    前言:小三角的应用场景:鼠标移动到某个按钮上面,查看信息详情时,信息详情弹出框有时候会需要一个小三角. 代码如下: <div id='triangle'></div> #tri ...

  4. spring 配置文件被加载两次

    如下web.xml示例: 1.用spring的配置加载contextConfigLocation 2.配置spring-mvc的contextConfigLocation <servlet> ...

  5. 修改Windows远程桌面端口

    要修改注册表中的两处 PortNumber 1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdp ...

  6. Bash编程(1) 基础

    1. 基本知识 (1) $HOME: 当前用户的家目录 (2) `pwd`或$PWD:当前目录 (3) 脚本命名避免使用test,通过type -a test,可以查看所有匹配test的命令 gas@ ...

  7. jQuery插件 -- UI插件Tabs Widget 1.10

    最近将tabs(标签页)整合到Admin LTE( 一个完全响应式管理模板,基于Bootstrap3的框架.)中使用.过程中走了不少弯路,原因是没有注意版本问题,jquery ui tabs 每次升级 ...

  8. 1.Windows服务-->添加一个简单的服务

    Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合.它没有用户界面,并且也不会产生任何可视输出.任何用户消息都会被 写进Windows事件日志.计算机启动时,服务会自动开 ...

  9. 如何移除git不需要提交的文件

    在大公司提交代码都需要经历cr(code review)过程,在用python脚本将代码上传至cr(代码对比工具)服务器时会产生一个issue.info文件,这个文件的内容就是一个issue号,此文件 ...

  10. python的爬虫

    requests库的安装 https://blog.csdn.net/xiaokuang5020/article/details/80580631 Response对象属性 属性 说明 r.statu ...