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

article/2025/11/5 16:48:44

在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);      //使用雷达折线图实例化SeriesRadarLineSeriesView 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;      //隐藏数据点的标签显示}}}
}

运行效果图,如下:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/45PygTiZ.shtml

相关文章

DevExpress ChartControl ToolTipPointPattern和ToolTipSeriesPattern

原本只是想改一下鼠标放到曲线上的tip显示的小数点位数 然后就发现他这个属性还挺多&#xff0c;多到有点看不懂 然后就写了小demo测试 demo代码 // Create a series and add points to it. Series series1 new Series("Series 1", ViewType.Line);series1.Points…

Dev中ChartControl添加限定线

1.单击Y轴,设置属性 2.点击ConstantLines属性,打开"Constant Line Collection Editor"界面 3.点击Add添加线条 4.通过设置Appearance中的Color属性,设置显示颜色; 设置Behavior中的AxisValue,设置线段出现的位置 设置Misc中的Name,设置显示文本

chartControl生成时间轴动态曲线

首先将dev的chartControl拖到窗体中并设置父窗体停靠&#xff0c;然后手动添加一个seriies,如下图 初始化chartxiao using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing…

DevExpress ChartControl 折线图简单使用

c# DevExpress ChartControl 折线图简单使用 DevExpress ChartControl折线图简单使用 DevExpress ChartControl折线图简单使用 1、界面放一个panel控件 2、定义一个DataTable 存储数据 3、获取数据后放在DataTable DataTable 定义&#xff1a; DataTable res_data new DataTa…

DevExpress之ChartControl用法

DevExpress中的ChartControl顾名思义就是数据基于图表展示&#xff0c;其关键在于Series上的处理。 using System; using System.Drawing; using DevExpress.XtraCharts;namespace DevExpressUtilHelpV3 { public static class ChartToolV3 { /// <summary> /// 创建Seri…

ChartControl控件绘制折线图

新建DevExpress窗体 SQLServer数据库中的数据如下&#xff1a; 拖入XtraTabControl控件&#xff0c;并修改Text属性 分别拖入GridControl控件和ChartControl控件 在GridControl控件中点击Run Designer,添加三列数据并分别设置FieldName(与数据库中对应) 在chartcontrol控件中…

DevExpress chartControl 数据绑定

DevExpress chartControl 数据绑定 chartControl 数据绑定ChartControl直接绑定Series 绑定例程附件 chartControl 数据绑定 这里介绍两种绑定方式ChartControl直接绑定以及ChartControl里的series绑定 ChartControl直接绑定 通过chartControl的DataSource属性直接bingdings…

DevExpress ChartControl 实现多轴

先看成图 如果是您需要的效果&#xff0c;请往后看&#xff1a; //曲线 Color[] Colorlist new Color[7] { Color.FromArgb(255, 79, 129, 189), Color.FromArgb(255, 192, 80, 77), Color.FromArgb(255, 155, 187, 89), Color.FromArgb(255, 128, 100, 162), Col…

chartControl

关键代码&#xff1a; /// <summary>/// 设置X轴Title/// </summary>/// <param name"chart">ChartControl</param>/// <param name"titleText">Title文字</param> /// <param name"titleColor">Titl…

Dev ChartControl

1、ChartControl 绘制曲线图&#xff0c;横坐标表示距离起点距离&#xff0c;纵坐标表示高程&#xff0c;均为double类型值&#xff0c;定义一个数据源的类。 /// <summary>/// 画图控件数据源/// </summary>public class ChartDatasource{/// <summary>/// …

ChartControl控件

ChartControl控件 ChartControl控件是一个可视化的图表控件&#xff0c;它支持你能想到的所有图形。用于对统计数据的可视化显示。最近我摸索了PivotGridControl控件与ChartControl控件的配合使用。本文简单的描述一下ChartControl控件。 常用的图表类型 通过代码设置图形 //条…

DevExpress中使用ChartControl绘制折线图和导出图表为Excel文件

一、实现效果 ①手动创建线性图表(添加图表标题) ②绘制单条线性图(可实现设置X和Y轴名称、绑定数据、缩放、复选框勾选是否显示、查看指定点信息) ③绘制多条线性图可实现设置X和Y轴名称、绑定数据、缩放、复选框勾选是否显示、查看指定点信息) ④导出图表为Excel 二、…

DEV控件之ChartControl用法

一、总体概述 这个控件包含3层&#xff0c;最外面的chartControl层、中间的XYDiagram层、最里面的Series层。功能非常强大&#xff0c;但同时使用起来也相对复杂&#xff0c;需要各个层之间相互协调设置才能达到自己想要的效果。 二、chartControl层 像DEV的其它控件一样&#…

C# DevExpress组件 - ChartControl图表控件

C# DevExpress组件 - ChartControl图表控件学习-整体感知&#xff08;一&#xff09; 1 逻辑框架图梳理 以逻辑框架图&#xff0c;进行代码验证 2 代码实现 2.1 实现内容 代码实现&#xff1a;添加一个ChartControl图表控件&#xff0c;并提供显示三个变量显示在三个位置 …

C# DevExpress ChartControl用法总结

C# DevExpress ChartControl用法总结 ₯近期使用C#DevExpress制作看板时用到过的ChartControl中的相关图表&#xff0c;在此做个记录&#xff08;未完&#xff09;。 1、Bar&#xff08;柱形图&#xff09; Series series1 new Series("日期", ViewType.Bar) …

DevExpress chartControl 基本结构说明

chartControl 使用教程及chart数据绑定 DevExpress说明ChartControl 结构series 主要Diagram 主要Chart TitlesLegendsAnnotations DevExpress说明 DevExpress是一个功能强大的跨平台控件库&#xff0c;支持winform、VB、WPF、UWP、asp等等&#xff0c; chart图是软件开发中常…

Dev中ChartControl——属性熟悉与简单应用

图表元素之间的关系&#xff1a; 根据DevExpress帮助文档中描述&#xff1a; 创建点图&#xff1a; 1、创建图表 /// <summary> /// 创建图表 /// </summary> private void CreatChart() {// Create a new chart.图表控件ChartControl pointChart new ChartCon…

运用getParameterNames()方法和getParameterValues()方法获取请求参数名称和内容

一.例子代码&#xff1a; 填写信息页面&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert title here</title> </head> <body> <form action"request_demo04.jsp" m…

使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收

ajax向服务器提交数组参数多了一个中括号 String[] values request.getParameterValues(key); $.post({}) 直接传递数组会导致如下情况 // 使用一下js会导致如图这种情况var ids [];$(input[name"ids"]:checked).each(function(){ids.push($(this).val());})$.po…

springboot 防止xss 和sql 注入 改写 http 请求 getParameter,getParameterValues,getHeader等方法 有点东西

目录 1.springboot 启动类 引入 过滤器配置 2.过滤器 3.XssAndSqlHttpServletRequestWrapper包装器 包装类 4.修改验证登录代码 这里只写了基础的 了解意思即可 5.测试内容 6.测试结果 7.反黑客小介绍&#xff08;黑客大哥们好小弟这没啥大用O(∩_∩)O~&#xff0c;但…