一、 初始化界面
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; 
- 这行代码设置了渲染模式为软件渲染模式。在 WPF(Windows Presentation Foundation)中,渲染模式决定了图形和界面元素如何在屏幕上绘制和呈现。软件渲染模式通常用于在不支持硬件加速的环境中进行图形绘制,或者在需要更高兼容性和稳定性的场景下使用。
 
InitializeComponent(); 
- 这是一个 WPF 中常见的语句,用于初始化当前窗体或用户控件的组件。它通常在窗体或用户控件的构造函数中调用,用来加载 XAML 中定义的界面元素和布局。
 
var dataSeries1 = new XyDataSeries<int, int>(); 
这段代码创建了一个 XyDataSeries 对象,该对象可以存储和管理 X 轴和 Y 轴均为整数类型的数据。这个对象可以用来添加、删除和操作图表中的数据点,从而在图表中展示这些数据
二、创建一系列近似于正弦的模拟数据
double dou = 0; // 定义一个双精度浮点数变量
int XAxisLen = 2047; // 设置了X轴的长度,也是数据的个数
Random random = new Random(); // 创建随机数生成器
for (int i = 0; i < XAxisLen; i++) // 循环生成模拟数据
{
    double noise = random.NextDouble() * 50 - 25; // 生成范围随机噪声
    int yValue = (int)(Math.Sin(dou) * 200 + noise + 400); // 设置峰值并加上偏移量
    dataSeries1.Append(i, yValue); // 向原始数据系列添加数据点
 
    dou += 0.003; // 增加之后周期变短
} 
-  
double dou = 0;- 定义一个名为 
dou的双精度浮点数变量,并初始化为 0。 - 这个变量将在循环中用于计算正弦波的值。
 
 - 定义一个名为 
 -  
int XAxisLen = 2047;- 定义一个名为 
XAxisLen的整数变量,并将其设置为 2047。 - 这个变量表示 X 轴的长度,也是生成的数据点的个数。
 
 - 定义一个名为 
 -  
Random random = new Random();- 创建一个 
Random类的实例random,用于生成随机数。 Random类提供生成伪随机数的功能。
 - 创建一个 
 -  
for (int i = 0; i < XAxisLen; i++)- 使用 
for循环来生成模拟数据,循环次数为XAxisLen(即 2047 次)。 i是循环变量,从 0 开始,每次循环递增 1,直到小于XAxisLen。
 - 使用 
 -  
double noise = random.NextDouble() * 50 - 25;- 生成一个范围在 [-25, 25) 之间的随机噪声。
 random.NextDouble()生成一个范围在 [0.0, 1.0) 的双精度浮点数,将其乘以 50 后减去 25,即得到范围为 [-25, 25) 的噪声值。
 -  
int yValue = (int)(Math.Sin(dou) * 200 + noise + 400);- 计算 y 轴的值 
yValue。 - 使用 
Math.Sin(dou)计算dou的正弦值,并将其放大 200 倍,然后加上噪声和偏移量 400。 - 将结果转换为整数类型。
 
 - 计算 y 轴的值 
 -  
dataSeries1.Append(i, yValue);- 将计算得到的 (i, yValue) 数据点添加到 
dataSeries1数据系列中。 i作为 x 轴的值,yValue作为 y 轴的值。
 - 将计算得到的 (i, yValue) 数据点添加到 
 -  
dou += 0.003;- 在每次循环后,将 
dou增加 0.003。 - 这样可以在每次循环中逐渐增加正弦函数的输入值,生成连续的正弦波形数据。
 
 - 在每次循环后,将 
 
三、散点图的创建
lineSeries1 = new XyScatterRenderableSeries // 创建一个散点图系列
{
    DataSeries = dataSeries1, // 设置数据系列
    PointMarker = new EllipsePointMarker { Width = 2, Height = 2, Fill = Colors.White }, // 设置点标记样式
    YAxisId = "LeftYAxis" // 设置 Y 轴 ID
};
 
-  
lineSeries1 = new XyScatterRenderableSeries- 创建一个 
XyScatterRenderableSeries对象并将其赋值给lineSeries1变量。 XyScatterRenderableSeries是用于绘制散点图的类。
 - 创建一个 
 -  
DataSeries = dataSeries1,- 将之前创建并填充的数据系列 
dataSeries1赋值给lineSeries1的DataSeries属性。 - 这意味着 
lineSeries1将使用dataSeries1中的数据来绘制散点图。 
 - 将之前创建并填充的数据系列 
 -  
PointMarker = new EllipsePointMarker { Width = 2, Height = 2, Fill = Colors.White },- 设置散点图中点的标记样式。
 PointMarker属性被赋值为一个新的EllipsePointMarker对象。EllipsePointMarker是一个椭圆形的点标记,其Width和Height属性被设置为 2,表示点的大小为 2 像素。Fill = Colors.White设置点的填充颜色为白色。
 -  
YAxisId = "LeftYAxis"- 设置散点图系列使用的 Y 轴的 ID 为 
"LeftYAxis"。 - 这意味着 
lineSeries1将使用 ID 为"LeftYAxis"的 Y 轴。 
 - 设置散点图系列使用的 Y 轴的 ID 为 
 
sciChart.RenderableSeries.Add(lineSeries1); //
- 添加散点图系列到 SciChart 中
 










