c#生成折线图的代码
时间: 2023-07-27 15:18:37 浏览: 70
好的,下面是使用 C# 生成折线图的示例代码,假设你已经通过 NuGet 安装了 `System.Windows.Forms.DataVisualization`:
```csharp
using System.Windows.Forms.DataVisualization.Charting;
// 创建 Chart 控件
Chart chart1 = new Chart();
chart1.Dock = DockStyle.Fill;
// 设置 Chart 的属性
chart1.ChartAreas.Add("ChartArea1");
chart1.Series.Add("Series1");
chart1.Series["Series1"].ChartType = SeriesChartType.Line;
// 添加数据
chart1.Series["Series1"].Points.AddXY(1, 10);
chart1.Series["Series1"].Points.AddXY(2, 20);
chart1.Series["Series1"].Points.AddXY(3, 30);
// 添加 Chart 控件到窗体中
this.Controls.Add(chart1);
```
以上代码中,创建了一个 Chart 控件并设置了 Chart 区域和折线图的类型。然后通过 Series 对象的 Points 属性添加数据点,并将 Chart 控件添加到窗体中。你可以根据实际需求修改代码。
相关问题
c# 读取串口数据 生成折线图
c是计算机编程语言中的一种,常用于系统开发和科学计算。它是一种面向过程的编程语言,由美国贝尔实验室的丹尼斯·里奇在20世纪70年代初开发。
c被广泛应用于各种领域,它的语法简洁且灵活,便于理解和学习。在c中,可以编写高效且具有良好性能的代码。它提供了丰富的基本数据类型,如整数、字符和浮点数,并支持数组、指针、结构体等数据结构。
c语言也具有强大的控制结构,如条件语句和循环语句,可以实现复杂的逻辑和算法。此外,c还可以直接访问内存,灵活性更高。但这也需要程序员对内存管理有一定的了解,否则可能会出现内存泄露和越界访问等问题。
c语言的应用广泛,特别是在嵌入式系统和操作系统开发中。由于c语言编译出的代码运行效率高,它也被广泛用于开发游戏、软件工具和科学计算软件等。
总之,c语言是一种强大且灵活的编程语言,具有广泛的应用领域。它的简洁语法和高效性能使其成为许多程序员首选的编程语言。
CSHARP生成带噪声的正弦曲线并使用绘制折线图,使用S-G滤波后绘制折线图
以下是使用C#生成带噪声的正弦曲线并使用S-G滤波后绘制折线图的示例代码:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
using MathNet.Numerics;
using MathNet.Numerics.Interpolation;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;
using ZedGraph;
namespace SGFilterDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 生成带噪声的正弦曲线
int n = 200; // 数据点数
double[] t = new double[n];
double[] y = new double[n];
double[] yNoisy = new double[n];
for (int i = 0; i < n; i++)
{
t[i] = i * 0.1;
y[i] = Math.Sin(t[i]);
yNoisy[i] = y[i] + 0.1 * (2 * Random.NextDouble() - 1);
}
// 使用S-G滤波平滑曲线
int windowSize = 21; // 滑动窗口大小
int polyOrder = 3; // 多项式阶数
double[] ySmooth = SGFilter(yNoisy, windowSize, polyOrder);
// 绘制折线图
GraphPane pane = zedGraphControl1.GraphPane;
pane.Title.Text = "S-G Filter Demo";
pane.XAxis.Title.Text = "Time";
pane.YAxis.Title.Text = "Amplitude";
LineItem curve1 = pane.AddCurve("Original Signal", t, y, Color.Blue, SymbolType.None);
LineItem curve2 = pane.AddCurve("Noisy Signal", t, yNoisy, Color.Red, SymbolType.None);
LineItem curve3 = pane.AddCurve("Smoothed Signal", t, ySmooth, Color.Green, SymbolType.None);
pane.AxisChange();
zedGraphControl1.Invalidate();
}
// S-G滤波函数
private double[] SGFilter(double[] y, int windowSize, int polyOrder)
{
int n = y.Length;
int halfWindowSize = windowSize / 2;
double[] yPadded = new double[n + windowSize - 1];
Vector<double> b = SGFilterCoefficients(polyOrder, windowSize);
double[] ySmooth = new double[n];
for (int i = 0; i < n; i++)
{
for (int j = -halfWindowSize; j <= halfWindowSize; j++)
{
int k = i + j;
if (k < 0)
k = -k;
if (k >= n)
k = 2 * n - k - 2;
yPadded[i + halfWindowSize] += y[k] * b[Math.Abs(j)];
}
}
for (int i = 0; i < n; i++)
{
ySmooth[i] = yPadded[i + halfWindowSize];
}
return ySmooth;
}
// S-G滤波系数计算函数
private Vector<double> SGFilterCoefficients(int polyOrder, int windowSize)
{
// 计算多项式系数矩阵
Matrix<double> X = DenseMatrix.Create(windowSize, polyOrder + 1, (i, j) => Math.Pow(i - windowSize / 2, j));
// 计算伪逆矩阵
Matrix<double> Xp = X.PseudoInverse();
// 计算S-G滤波系数向量
Vector<double> b = DenseVector.Create(windowSize, 0);
for (int i = 0; i < windowSize; i++)
{
b[i] = Xp.Row(polyOrder) * DenseVector.Create(polyOrder + 1, j => Math.Pow(i - windowSize / 2, j));
}
return b;
}
}
}
```
需要注意的是,以上代码中使用了MathNet.Numerics库来进行矩阵运算和插值计算,需要先使用NuGet安装该库。另外,以上代码中使用了ZedGraph库来绘制折线图,也需要先使用NuGet安装该库。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)