aardio 文档

dotNet.ReoGrid 扩展库 - 面积图

要在工作表中添加面积图,首先需要准备数据源:

var sheet1 = grid.CurrentWorksheet;
sheet1["A2"] = [
    [ 2007, 2008, 2009, 2010, 2011, 2012 ],
    [ "城市1", 3, 2, 4, 2, 6 ],
    [ "城市2", 7, 5, 3, 6, 4 ],
    [ "城市3", 13, 10, 9, 10, 9 ],
    [ "总计", "=SUM(B3:B5)", "=SUM(C3:C5)", "=SUM(D3:D5)", "=SUM(E3:E5)", "=SUM(F3:F5)" ]
];

工作表中的数据源显示如下:

233

定义数据系列范围、系列名称范围和类别名称范围:

var dataRange = ReoGrid.RangePosition("B3:F5");
var serialNamesRange = ReoGrid.RangePosition("A3:A5");
var categoryNamesRange = ReoGrid.RangePosition("B2:F2");
sheet1.AddHighlightRange(categoryNamesRange);
sheet1.AddHighlightRange(serialNamesRange);
sheet1.AddHighlightRange(dataRange);

创建面积图的代码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="ReoGrid 图表示例")
/*}}*/

import dotNet.ReoGrid;
var grid = ReoGrid.ReoGridControl(winform);
var sheet1 = grid.CurrentWorksheet;

// 获取当前工作表
var sheet1 = grid.CurrentWorksheet;

sheet1["A2"] = [
    [ 2007, 2008, 2009, 2010, 2011, 2012 ],
    [ "城市1", 3, 2, 4, 2, 6 ],
    [ "城市2", 7, 5, 3, 6, 4 ],
    [ "城市3", 13, 10, 9, 10, 9 ],
    [ "总计", "=SUM(B3:B5)", "=SUM(C3:C5)", "=SUM(D3:D5)", "=SUM(E3:E5)", "=SUM(F3:F5)" ]
];

var dataRange = ReoGrid.RangePosition("B3:F5");
var serialNamesRange = ReoGrid.RangePosition("A3:A5");
var categoryNamesRange = ReoGrid.RangePosition("B2:F2");
sheet1.AddHighlightRange(categoryNamesRange);
sheet1.AddHighlightRange(serialNamesRange);
sheet1.AddHighlightRange(dataRange);

var chart = ReoGrid.Chart.AreaChart();

chart.Bounds = ReoGrid.Graphics.Rectangle(30, 150, 400, 240);
chart.Title = "面积图示例";

// 指定数据源
// 数据源由系列数据和每个系列数据的名称创建
chart. DataSource = ReoGrid.Chart.WorksheetChartDataSource(
    sheet1,serialNamesRange,dataRange
);

chart.DataSource.CategoryNameRange = categoryNamesRange;

// 添加图表到工作表
sheet1.FloatingObjects.Add(chart); 

winform.show();
win.loopMessage();

结果如下:

339

由于最大的面积会覆盖较小的面积,我们可以访问数据系列样式并将所有颜色设置为半透明:

// 使所有系列颜色半透明
for(style in chart.DataSerialStyles){
    style.FillColor = ReoGrid.Graphics.SolidColor(100, style.FillColor.ToSolidColor());
}

最终效果:

340

代码说明

  1. 在 aardio 中创建二维数组时,直接使用[]语法,比C#更简洁
  2. 范围选择使用字符串表示法(如"B3:F5"),与Excel习惯一致
  3. 图表创建使用构造函数语法,参数通过名值对指定
  4. 循环遍历数据系列样式时,使用aardio的for...in语法
  5. 颜色设置使用ReoGrid.Graphics.SolidColor类,支持透明度参数

这个示例展示了如何在aardio中利用ReoGrid控件创建专业的面积图,并通过调整透明度解决数据重叠的可视化问题。

Markdown 格式