iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#中如何使用DevExpress的ChartControl实现极坐标图
  • 823
分享到

C#中如何使用DevExpress的ChartControl实现极坐标图

2023-06-29 06:06:06 823人浏览 安东尼
摘要

今天小编给大家分享一下C#中如何使用DevExpress的ChartControl实现极坐标图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一

今天小编给大家分享一下C#中如何使用DevExpress的ChartControl实现极坐标图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

背景

在工控软件的开发中很多业务场景就是使用图表控件展示设备和工艺参数。如下图案例:

C#中如何使用DevExpress的ChartControl实现极坐标图

实现思路

通常简单的做法是使用图表控件实现,常用的图表控件有开源的ZedGraph,还有付费的TeeChart和DevExpress。常规的曲线图、柱状图、饼图的实现,三个控件都可以很好的实现,建议使用开源的ZedGraph。但是在实现雷达图、极坐标图等特定图表时ZedGraph就不能支持,TeeChart用起来也不是那么完美,对比后发现DevExpress的ChartControl实现还是不错的。

参考代码

本案例是使用的是DevExpress 18.1.3版本,之前在14版本上也试过,但是有一个弊端就是实现极坐标图的时候,第一个点和最后一个点总是自动多一条闭合线,会形成一个闭合的多边形,因此升级了一下版本。在DevExpress中雷达图和极坐标图使用的是父子类的关系,很多属性一致,为了可以自己定义圆盘上的刻度范围,这是采用雷达图实现自定义的极坐标图。

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;                      //曲线数量            int points = 8;                     //每条曲线的点数            int angleMaxValue = 24;             //角度最大值            int maxShowPints = 30;              //最大显示的点数            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);      //使用雷达折线图实例化Series                RadarLineSeriesView radLineSeriesView = (seriesArr[i].View as RadarLineSeriesView);                radLineSeriesView.MarkerVisibility = DevExpress.Utils.DefaultBoolean.False;  //去掉线条中的圆点                radLineSeriesView.Closed = false;           //线条不形成闭环                                RadarLineChart.Series.Add(seriesArr[i]);            }            // Flip the diagram (if necessary).            RadarDiagram radarDiagram = RadarLineChart.Diagram as RadarDiagram;            radarDiagram.StartAngleInDegrees = 0; //开始的角度            radarDiagram.AxisX.WholeRange.MinValue = 0;         //设置角度范围最小值            radarDiagram.AxisX.WholeRange.MaxValue = 23;        //设置角度范围最大值            radarDiagram.RotationDirection = RadarDiagramRotationDirection.Clockwise; //数据是顺时针还是逆时针                        // 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#中如何使用DevExpress的ChartControl实现极坐标图

以上就是“C#中如何使用DevExpress的ChartControl实现极坐标图”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: C#中如何使用DevExpress的ChartControl实现极坐标图

本文链接: https://www.lsjlt.com/news/323059.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中如何使用DevExpress的ChartControl实现极坐标图
    今天小编给大家分享一下C#中如何使用DevExpress的ChartControl实现极坐标图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-06-29
  • C#中使用DevExpress中的ChartControl实现极坐标图的案例详解
    目录背景实现思路参考代码背景 在工控软件的开发中很多业务场景就是使用图表控件展示设备和工艺参数。如下图案例: 实现思路 通常简单的做法是使用图表控件实现,常用的图表控件有开源的Ze...
    99+
    2024-04-02
  • C#使用DevExpress中的XtraCharts控件实现图表
    目录一、总体概述二、chartControl层\XYDiagram层1.当坐标轴的数据类型是数字时2. 当前数据类型是字符串时3.当前数据类型是时间三、实例1.饼状图1.1、添加Ch...
    99+
    2024-04-02
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标
    要将图像从笛卡尔坐标更改为极坐标,您可以使用Matlab中的polarplot函数。以下是一个简单的示例代码,展示了如何实现这一操作...
    99+
    2023-09-26
    Matlab
  • Matlab实现极坐标堆叠柱状图的绘制
    目录part1: 函数介绍基本使用角度范围常用函数:改变样式常用函数:设置下界常用函数:修改颜色添加图例part2: 完整类函数代码part3: 两个使用示例示例一示例二极坐标堆叠图...
    99+
    2022-11-13
    Matlab堆叠柱状图 Matlab 柱状图
  • 使用ECharts和Python接口生成极坐标图的方法
    使用ECharts和Python接口生成极坐标图的方法,需要具体代码示例ECharts是一款非常强大、易于使用的开源数据可视化工具,它具有快速、美观、可定制的特点,可以快速地绘制各种图表。ECharts支持的图表类型非常多,包括柱状图、折线...
    99+
    2023-12-17
    Python echarts 极坐标图
  • C++瓦片地图坐标转换的实现详解
    目录一、前言二、定义三、矩形瓦片四、菱形瓦片1.斜菱形瓦片2.正菱形瓦片五、点在菱形内判断一、前言 严格来说,瓦片的角度并不是45度。因为为了美术作图方便,图片的宽高比一般为2:1,...
    99+
    2024-04-02
  • C#实现获取Excel中图片所在坐标位置
    目录程序环境获取图片所在行、列位置实现代码C#vb.net本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格...
    99+
    2024-04-02
  • html5中如何实现Canvas路径绘图、坐标变换应用
    这篇文章主要介绍了html5中如何实现Canvas路径绘图、坐标变换应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 代码如下:...
    99+
    2024-04-02
  • 使用Python和GDAL给图片加坐标系的实现思路(坐标投影转换)
    ** 使用Python和GDAL给图片加坐标系 ** 假设你已经知道arcgis地理配准(如下图内容),懂一点python。 ** -目的和背景 1.从地图网站获得一张PNG格式...
    99+
    2024-04-02
  • C#怎么实现获取Excel中图片所在坐标位置
    本文小编为大家详细介绍“C#怎么实现获取Excel中图片所在坐标位置”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现获取Excel中图片所在坐标位置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。【程序...
    99+
    2023-06-30
  • Python中如何使用matplotlib绘图建立画布及坐标系
    小编给大家分享一下Python中如何使用matplotlib绘图建立画布及坐标系,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、建立画布import ...
    99+
    2023-06-22
  • 微信小程序开发中如何使用canvas绘制坐标图
    这篇文章主要为大家展示了“微信小程序开发中如何使用canvas绘制坐标图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序开发中如何使用canvas绘制坐标图”这篇文章吧。线图functi...
    99+
    2023-06-26
  • 如何在极坐标上获取 str.contains() 中的字符串匹配起始位置?
    问题内容 我知道我可以使用 str.contains() 来检查列中是否包含字符串,例如: import polars as pl df = pl.dataframe({"a": ["...
    99+
    2024-02-10
  • 如何使用yolov5输出检测到的目标坐标信息
    找到detect.py,在大概113行,找到plot_one_box                 # Write results                 for *xyx...
    99+
    2024-04-02
  • C#如何使用GDI+实现饼状图
    这篇文章主要介绍“C#如何使用GDI+实现饼状图”,在日常操作中,相信很多人在C#如何使用GDI+实现饼状图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#如何使用GDI+实现饼状图”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • vue如何使用js对图片进行点击标注圆点并记录它的坐标
    目录功能标注前标注后打印记录坐标点代码实现判断鼠标是否右击阻止冒泡行为和默认右键菜单事件给图片加点击事件画点最近和深度学习方面搞个东西,需要前端对图片进行标注,呃,这个我上网也没找到...
    99+
    2024-04-02
  • CSS如何实现禁用图标
    这篇文章主要讲解了“CSS如何实现禁用图标”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS如何实现禁用图标”吧!禁用图标外圈利用圆角边框,里面的竖线用渐变来做,然后再用旋转属性即可<...
    99+
    2023-07-04
  • 如何使用css3实现各种图标效果
    这篇文章主要为大家展示了如何使用css3实现各种图标效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“如何使用css3实现各种图标效果”这篇文章吧。公共样式应该说...
    99+
    2024-04-02
  • python如何实现用经纬度点坐标读取DEM中的高程信息
    这篇文章主要为大家展示了“python如何实现用经纬度点坐标读取DEM中的高程信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现用经纬度点坐标读取DEM中的高程信息”这篇文章...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作