Dev的chartControl畫曲線圖

一個高手的回覆答案對於dev的chartControl控件的使用和理解很有幫助。

要設置下 series1.ArgumentScaleType = ScaleType.DateTime;//x軸類型 這個  


Series series1 = new Series(this.Text, ViewType.Spline);
            series1.ArgumentScaleType = ScaleType.DateTime;//x軸類型
            series1.ValueScaleType = ScaleType.Numerical;//y軸類型
            //X軸的數據字段
            series1.ArgumentDataMember = "StatisticsTime";
            //Y軸的數據字段
            series1.ValueDataMembers[0] = "StatisticsSum";
            //定義線條上點的標識形狀是否需要
            ((LineSeriesView)series1.View).LineMarkerOptions.Visible = false;
            //定義線條上點的標識形狀
            ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle;          
            //不顯示X、Y軸上面的交點的值
            ((PointSeriesLabel)series1.Label).Visible = false;
            //線條的類型,虛線,實線
            ((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid;


完整代碼分享給你,給滿分喲:

  public void BindChart(DataTable datatable, ChartControl myChartControl)
        {
            myChartControl.Name = "chartResult";
            myChartControl.Dock = DockStyle.Fill;
            myChartControl.Size = new System.Drawing.Size(400, 250);
            // 顯示標籤.            
            myChartControl.Legend.Visible = true;
            myChartControl.Series.Clear();

            #region 僅供參考(不需要)
            //控制X、Y軸顯示
            //XYDiagram diagram = (XYDiagram)chartControl.Diagram;
            //diagram.AxisX.Label.Staggered = true;
            //diagram.AxisY.Label.BeginText = "Axis value = ";
            //diagram.AxisY.Label.Angle = -30;
            //diagram.AxisY.Label.Antialiasing = true;

            //XYDiagram diagram = (XYDiagram)chartControl.Diagram; 
            //diagram.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second; 
            //diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom; diagram.AxisX.DateTimeOptions.FormatString = "HH:mm:ss";

            //((XYDiagram)myChartControl.Diagram).AxisX.Interlaced = true;
            //((XYDiagram)myChartControl.Diagram).AxisX.GridSpacing = 10;
            //((XYDiagram)myChartControl.Diagram).AxisX.Label.Angle = -30;
            //((XYDiagram)myChartControl.Diagram).AxisX.Label.Antialiasing = true;
            //((XYDiagram)myChartControl.Diagram).AxisX.DateTimeOptions.Format = DateTimeFormat.MonthAndDay;

            ////XYDiagram xyDiagram1 = new XYDiagram();
            ////xyDiagram1.AxisX.Range.Auto = false; //要開啓滾動條必須將其設置爲false
            //////xyDiagram1.AxisX.Range.MaxValueInternal = 30.5D > (cnt + 1) ? (cnt + 1) : 30.5D;//在不拉到滾動條的時候,X軸顯示多個值,既固定的X軸長度。
            //////xyDiagram1.AxisX.Range.MinValueInternal = -0.5D;
            ////xyDiagram1.AxisX.Range.ScrollingRange.Auto = false;
            ////xyDiagram1.AxisX.MinorCount = 9; //顯示X軸間隔數量
            ////xyDiagram1.AxisX.Tickmarks.MinorVisible = true;//是否顯示X軸間隔
            //xyDiagram1.AxisY.MinorCount = 1;//顯示Y軸間隔數量
            //xyDiagram1.AxisY.Tickmarks.MinorVisible = true;//是否顯示Y軸間隔

            //xyDiagram1.AxisX.Range.ScrollingRange.MaxValueSerializable = (cnt + 1).ToString();//整個X軸最多顯示多多少個值
            // xyDiagram1.AxisX.Range.ScrollingRange.MinValueSerializable = "0";
            //xyDiagram1.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second;
            //xyDiagram1.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom;
            //xyDiagram1.AxisX.DateTimeOptions.FormatString = "yyyy:MM:HH";
            //xyDiagram1.AxisX.Range.ScrollingRange.SideMarginsEnabled = true;//是否從X軸原點開始顯示
            //xyDiagram1.AxisX.Range.SideMarginsEnabled = false;
            ////xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
            ////xyDiagram1.AxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//顯示爲百分數
            //xyDiagram1.AxisY.Range.Auto = false;
            ////xyDiagram1.AxisY.Range.MaxValueSerializable = "1.02";
            ////xyDiagram1.AxisY.Range.MinValueSerializable = "0.5";
            //xyDiagram1.AxisY.Range.ScrollingRange.SideMarginsEnabled = true;
            //xyDiagram1.AxisY.Range.SideMarginsEnabled = true;
            ////xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
            //xyDiagram1.EnableScrolling = true;//啓用滾動條

            //獲取Diagram必須在ChartControl中已經加入了Series之後
            //((XYDiagram)chartControl.Diagram).Rotated = false;
            #endregion

            //圖標位置
            myChartControl.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right;
            myChartControl.Legend.AlignmentVertical = LegendAlignmentVertical.Top;

            ChartTitle chartTitle = new ChartTitle();
            chartTitle.Text = this.Text;//標題內容
            chartTitle.TextColor = System.Drawing.Color.Black;//字體顏色
            chartTitle.Font = new Font("Tahoma", 8);//字體類型字號
            chartTitle.Dock = ChartTitleDockStyle.Bottom;//標題對齊方式
            chartTitle.Alignment = StringAlignment.Far;
            myChartControl.Titles.Clear();//清理標題
            myChartControl.Titles.Add(chartTitle);//加載標題


            Series series1 = new Series(this.Text, ViewType.Spline);
            series1.ArgumentScaleType = ScaleType.DateTime;//x軸類型
            series1.ValueScaleType = ScaleType.Numerical;//y軸類型
            //X軸的數據字段
            series1.ArgumentDataMember = "StatisticsTime";
            //Y軸的數據字段
            series1.ValueDataMembers[0] = "StatisticsSum";
            //定義線條上點的標識形狀是否需要
            ((LineSeriesView)series1.View).LineMarkerOptions.Visible = false;
            //定義線條上點的標識形狀
            ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle;          
            //不顯示X、Y軸上面的交點的值
            ((PointSeriesLabel)series1.Label).Visible = false;
            //線條的類型,虛線,實線
            ((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid;

            //綁定數據源
            series1.DataSource = datatable;

            myChartControl.Series.Add(series1);        
        }
發佈了27 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章