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 格式