aardio 文档
aardio 范例: CSV 数据视图 / 统计图表
import string.csv;
import gdip.chart.bar;
import table.sortByCount;
import win.ui;
/*DSG{{*/
var winform = win.form(text="CSV 数据视图 / 统计图表";right=882;bottom=587)
winform.add(
listview={cls="listview";left=6;top=0;right=877;bottom=354;db=1;dl=1;dr=1;dt=1;edge=1;z=1};
plusChart={cls="plus";left=6;top=363;right=877;bottom=576;bgcolor=0xFFFFFF;db=1;dl=1;dr=1;z=3};
splitter={cls="splitter";left=6;top=356;right=877;bottom=361;db=1;dl=1;dr=1;frame=1;horz=1;z=2}
)
/*}}*/
winform.show(3/*_SW_MAXIMIZE*/)
winform.splitter.split(winform.listview,winform.plusChart);
import win.ui.grid;
var grid = win.ui.grid(winform.listview);
//加载测试 CSV 数据
var dataTable = string.csv(" ").parse(`
listview win.ui.ctrl.listview
数据视图 win.ui.grid
柱状图 gdip.chart.bar
条形图 gdip.chart.hbar
柱状图 gdip.chart.bar
排序 table.sortByCount
统计 table.sortByCount
计数 table.sortByCount
`);
//自文件加载 CSV
//var dataTable = string.csv(",").load("/example.csv")
var chart = gdip.chart.bar(winform.plusChart)
grid.onSortColumn = function(column,desc){
//排序
var counter,sortedValues = table.sortByCount(dataTable,column,!desc/*以多数在前为正序*/)
//取前 10 个
sortedValues = table.slice(sortedValues,1,10);
//图表数据
chart.dataset = {
labels = sortedValues;
data = table.map(sortedValues,lambda(v) counter[v] );
// colors = [0xFFE74C3C, 0xFFF1C40F, 0xFFE67E22, 0xFF9B59B6, 0xFF3498DB]; // 可选字段
// showPercentage = true; // 如果使用 gdip.chart.pie 可以指定这个字段
};
chart.draw();
grid.setTable( dataTable );
return true; //返回 true 允许当前列排序
}
grid.columns = ["关键词","库"]
grid.sortColumn(1,true);
win.loopMessage();
Markdown 格式