RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
InitializeComponent();
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。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;
random.NextDouble() 生成一个范围在 [0.0, 1.0) 的双精度浮点数,将其乘以 50 后减去 25,即得到范围为 [-25, 25) 的噪声值。int yValue = (int)(Math.Sin(dou) * 200 + noise + 400);
yValue。Math.Sin(dou) 计算 dou 的正弦值,并将其放大 200 倍,然后加上噪声和偏移量 400。dataSeries1.Append(i, yValue);
dataSeries1 数据系列中。i 作为 x 轴的值,yValue 作为 y 轴的值。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"
"LeftYAxis"。lineSeries1 将使用 ID 为 "LeftYAxis" 的 Y 轴。sciChart.RenderableSeries.Add(lineSeries1); //