欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

DevExpress之ChartControl實現(xiàn)時間軸實例

 更新時間:2014年10月22日 10:31:44   投稿:shichen2014  
這篇文章主要介紹了DevExpress中ChartControl實現(xiàn)時間軸的方法,涉及相關(guān)C#繪圖程序用法,具有一定的實用價值,需要的朋友可以參考下

本文實例講述了DevExpress采用ChartControl實現(xiàn)時間軸的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:

關(guān)鍵代碼如下:

復(fù)制代碼 代碼如下:
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";
        }
    }
}

復(fù)制代碼 代碼如下:
using DevExpress.Utils;
using DevExpress.XtraCharts;

namespace DevExpressChart
{
    public static class ChartUtils
    {
        /// <summary>
        /// 增加數(shù)據(jù)篩選
        /// </summary>
        /// <param name="SeriesBase">Series</param>
        /// <param name="columnName">列名稱</param>
        /// <param name="value">列名稱對應(yīng)的篩選數(shù)值</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>
        /// 設(shè)置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>
        ///  設(shè)置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>
        /// 設(shè)置ColorEach
        /// </summary>
        /// <param name="chart">ChartControl</param>
        /// <param name="colorEach">是否設(shè)置成ColorEach</param>
        public static void SetColorEach(this Series series, bool colorEach)
        {
            SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View;
            if (colorEachView != null)
            {
                colorEachView.ColorEach = colorEach;
            }
        }
        /// <summary>
        /// 設(shè)置是否顯示十字標線
        /// </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設(shè)置成百分比顯示
        /// </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;
            }
        }
    }
}


運行效果如下圖所示:

希望本文所述對大家的C#程序設(shè)計有所幫助

相關(guān)文章

  • 詳解WPF中的對象資源

    詳解WPF中的對象資源

    這篇文章主要介紹了WPF中對象資源的相關(guān)資料,幫助大家更好的理解和學習使用WPF,感興趣的朋友可以了解下
    2021-04-04
  • C#中接口(interface)的理解

    C#中接口(interface)的理解

    C#中接口(interface)的理解...
    2007-03-03
  • 詳解c# 數(shù)組(Array)

    詳解c# 數(shù)組(Array)

    這篇文章主要介紹了c# 數(shù)組的的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • c# 類型構(gòu)造器

    c# 類型構(gòu)造器

    CLR還支持類型構(gòu)造器,也稱為靜態(tài)構(gòu)造器。c#類型構(gòu)造器可應(yīng)用引用類型和值類型,永遠沒有參數(shù)
    2012-10-10
  • C#微信公眾號開發(fā)之服務(wù)器配置

    C#微信公眾號開發(fā)之服務(wù)器配置

    這篇文章介紹了C#微信公眾號開發(fā)之服務(wù)器配置,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • PropertyGrid自定義控件使用詳解

    PropertyGrid自定義控件使用詳解

    這篇文章主要為大家詳細介紹了PropertyGrid自定義控件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C#中實現(xiàn)Fluent Interface的三種方法

    C#中實現(xiàn)Fluent Interface的三種方法

    這篇文章主要介紹了C#中實現(xiàn)Fluent Interface的三種方法,本文講解了Fluent Interface的簡單實現(xiàn)、使用裝飾器模式和擴展方法實現(xiàn)Fluent Interface等3種實現(xiàn)方法,需要的朋友可以參考下
    2015-03-03
  • C#程序員統(tǒng)計自己的代碼行數(shù)

    C#程序員統(tǒng)計自己的代碼行數(shù)

    這篇文章給大家講解了下作為程序員如何統(tǒng)計自己寫過的代碼的行數(shù),這個也是證明自己程序員能力的一個表現(xiàn),一起來看下。
    2017-12-12
  • C#字典Dictionary的用法說明(注重性能版)

    C#字典Dictionary的用法說明(注重性能版)

    這篇文章主要介紹了C#字典Dictionary的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#中設(shè)置textbox限制條件的方法

    C#中設(shè)置textbox限制條件的方法

    這篇文章主要介紹了C#中設(shè)置textbox限制條件的方法,可實現(xiàn)設(shè)置像數(shù)量、價格、金額等的textbox的限制條件,用戶只能輸入數(shù)字或小數(shù),是非常實用的技巧,需要的朋友可以參考下
    2014-12-12

最新評論