最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中使用DevExpress中的ChartControl實(shí)現(xiàn)極坐標(biāo)圖的案例詳解

 更新時間:2022年02月21日 11:39:42   作者:CodingPioneer  
這篇文章主要介紹了在C#中使用DevExpress中的ChartControl實(shí)現(xiàn)極坐標(biāo)圖,本案例是使用的是DevExpress 18.1.3版本,之前在14版本上也試過,但是有一個弊端就是實(shí)現(xiàn)極坐標(biāo)圖的時候,第一個點(diǎn)和最后一個點(diǎn)總是自動多一條閉合線,會形成一個閉合的多邊形,因此升級了一下版

背景

在工控軟件的開發(fā)中很多業(yè)務(wù)場景就是使用圖表控件展示設(shè)備和工藝參數(shù)。如下圖案例:

在這里插入圖片描述

實(shí)現(xiàn)思路

通常簡單的做法是使用圖表控件實(shí)現(xiàn),常用的圖表控件有開源的ZedGraph,還有付費(fèi)的TeeChart和DevExpress。常規(guī)的曲線圖、柱狀圖、餅圖的實(shí)現(xiàn),三個控件都可以很好的實(shí)現(xiàn),建議使用開源的ZedGraph。但是在實(shí)現(xiàn)雷達(dá)圖、極坐標(biāo)圖等特定圖表時ZedGraph就不能支持,TeeChart用起來也不是那么完美,對比后發(fā)現(xiàn)DevExpress的ChartControl實(shí)現(xiàn)還是不錯的。

參考代碼

本案例是使用的是DevExpress 18.1.3版本,之前在14版本上也試過,但是有一個弊端就是實(shí)現(xiàn)極坐標(biāo)圖的時候,第一個點(diǎn)和最后一個點(diǎn)總是自動多一條閉合線,會形成一個閉合的多邊形,因此升級了一下版本。在DevExpress中雷達(dá)圖和極坐標(biāo)圖使用的是父子類的關(guān)系,很多屬性一致,為了可以自己定義圓盤上的刻度范圍,這是采用雷達(dá)圖實(shí)現(xiàn)自定義的極坐標(biāo)圖。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using DevExpress.XtraCharts;

namespace WinTest
{
    public partial class Form1 : Form
    {
        private Stopwatch sw = new Stopwatch();
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            sw.Restart();

            int fontSize = 9;                   //字號
            int count = 1;                      //曲線數(shù)量
            int points = 8;                     //每條曲線的點(diǎn)數(shù)
            int angleMaxValue = 24;             //角度最大值
            int maxShowPints = 30;              //最大顯示的點(diǎn)數(shù)

            for (int i = 0; i < this.Controls.Count; i++)
            {
                if (this.Controls[i] is ChartControl)
                {
                    this.Controls.RemoveAt(i);
                    break;
                }
            }
            // Create a new chart.
            ChartControl RadarLineChart = new ChartControl();

            // Add a radar series to it.
            Series[] seriesArr = new Series[count];
            List<SeriesPoint>[] pintValuesList = new List<SeriesPoint>[count];
            for (int i = 0; i < seriesArr.Length; i++)
            {
                pintValuesList[i] = new List<SeriesPoint>();
                seriesArr[i] = new Series("Series " + i, ViewType.RadarLine);      //使用雷達(dá)折線圖實(shí)例化Series

                RadarLineSeriesView radLineSeriesView = (seriesArr[i].View as RadarLineSeriesView);
                radLineSeriesView.MarkerVisibility = DevExpress.Utils.DefaultBoolean.False;  //去掉線條中的圓點(diǎn)
                radLineSeriesView.Closed = false;           //線條不形成閉環(huán)
                
                RadarLineChart.Series.Add(seriesArr[i]);
            }

            // Flip the diagram (if necessary).
            RadarDiagram radarDiagram = RadarLineChart.Diagram as RadarDiagram;
            radarDiagram.StartAngleInDegrees = 0; //開始的角度
            radarDiagram.AxisX.WholeRange.MinValue = 0;         //設(shè)置角度范圍最小值
            radarDiagram.AxisX.WholeRange.MaxValue = 23;        //設(shè)置角度范圍最大值
            radarDiagram.RotationDirection = RadarDiagramRotationDirection.Clockwise; //數(shù)據(jù)是順時針還是逆時針
            

            // Add a title to the chart and hide the legend.
            ChartTitle chartTitle1 = new ChartTitle();
            chartTitle1.Text = "Radar Line Chart";
            RadarLineChart.Titles.Add(chartTitle1);
            RadarLineChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;       //隱藏圖例

            // Add the chart to the form.
            RadarLineChart.Dock = DockStyle.Fill;
            this.Controls.Add(RadarLineChart);

            // Populate the series with points.
            Random r = new Random((int)DateTime.Now.Ticks);
            r.NextDouble();
            for (int i = 0; i < seriesArr.Length; i++)
            {
                for (int k = 0; k < points; k++)
                {
                    double yValue = 100 * r.NextDouble();
                    pintValuesList[i].Add(new SeriesPoint(k * 24.0 / points, yValue));
                }
                seriesArr[i].Points.AddRange(pintValuesList[i].ToArray());
                seriesArr[i].LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;      //隱藏?cái)?shù)據(jù)點(diǎn)的標(biāo)簽顯示
            }
        }
    }
}

運(yùn)行效果圖,如下:

在這里插入圖片描述

到此這篇關(guān)于在C#中使用DevExpress中的ChartControl實(shí)現(xiàn)極坐標(biāo)圖的文章就介紹到這了,更多相關(guān)C# ChartControl極坐標(biāo)圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法

    Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法

    游戲中收到傷害掉血,會有飄動的傷害數(shù)值,本文主要介紹Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果

    Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果

    這篇文章主要為大家詳細(xì)介紹了Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • C# 創(chuàng)建MDB數(shù)據(jù)庫、并存放表格數(shù)據(jù)的案例

    C# 創(chuàng)建MDB數(shù)據(jù)庫、并存放表格數(shù)據(jù)的案例

    這篇文章主要介紹了C# 創(chuàng)建MDB數(shù)據(jù)庫、并存放表格數(shù)據(jù)的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器

    C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器

    這篇文章介紹了C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Unity實(shí)現(xiàn)簡單虛擬搖桿

    Unity實(shí)現(xiàn)簡單虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡單虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#基于共享內(nèi)存實(shí)現(xiàn)跨進(jìn)程隊(duì)列

    C#基于共享內(nèi)存實(shí)現(xiàn)跨進(jìn)程隊(duì)列

    進(jìn)程通信一般情況下比較少用,但是也有一些使用場景,有些做視頻傳輸?shù)乃坪鯐枚噙M(jìn)程來實(shí)現(xiàn),還有在子進(jìn)程中調(diào)用特定的庫來避免內(nèi)存泄漏,筆者最近也遇到了需要使用多進(jìn)程的場景,本文介紹了C#基于共享內(nèi)存實(shí)現(xiàn)跨進(jìn)程隊(duì)列,需要的朋友可以參考下
    2024-07-07
  • Winform實(shí)現(xiàn)抓取web頁面內(nèi)容的方法

    Winform實(shí)現(xiàn)抓取web頁面內(nèi)容的方法

    這篇文章主要介紹了Winform實(shí)現(xiàn)抓取web頁面內(nèi)容的方法,代碼只有短短幾行,但是功能很實(shí)用,需要的朋友可以參考下
    2014-09-09
  • 基于C#動態(tài)生成帶參數(shù)的小程序二維碼

    基于C#動態(tài)生成帶參數(shù)的小程序二維碼

    在微信小程序管理后臺,我們可以生成下載標(biāo)準(zhǔn)的小程序二維碼,提供主程序入口功能,在實(shí)際應(yīng)用開發(fā)中,小程序二維碼是可以攜帶參數(shù)的,可以動態(tài)進(jìn)行生成,本文小編就給大家介紹一下如何基于C#動態(tài)生成帶參數(shù)的小程序二維碼,感興趣的朋友可以參考下
    2023-12-12
  • C# 泛型參數(shù)轉(zhuǎn)換

    C# 泛型參數(shù)轉(zhuǎn)換

    本文介紹了C# 泛型參數(shù)轉(zhuǎn)換的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • C# 基于消息發(fā)布訂閱模型的示例(下)

    C# 基于消息發(fā)布訂閱模型的示例(下)

    這篇文章主要介紹了C# 基于消息發(fā)布訂閱模型的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-03-03

最新評論

浪卡子县| 磴口县| 浏阳市| 门头沟区| 宁德市| 左云县| 大兴区| 玉山县| 墨竹工卡县| 海盐县| 巫溪县| 沙湾县| 新闻| 芒康县| 邢台市| 武邑县| 永新县| 延川县| 吉隆县| 若尔盖县| 勐海县| 富平县| 织金县| 达尔| 德兴市| 甘孜| 海盐县| 鸡泽县| 嘉黎县| 凤城市| 东兰县| 修文县| 信阳市| 柏乡县| 寿阳县| 宿迁市| 梁山县| 廊坊市| 宝坻区| 闽清县| 禄丰县|