aardio调用C# ZedGraph画图表
By
jerryxjr1220
at 2022-07-01 • 0人收藏 • 1400人看过
基本介绍
ZedGraph 是一个开源的.NET图表类库, 全部代码都是用C#开发的。它可以利用任意的数据集合创建2D的线性和柱形图表。
特性
ZedGraph 的类库具有很高的灵活性。几乎图表的每个层面都可以被用户修改。同时,为了保证类库的易用性,所有的图表属性都提供了缺省值。类库中包含的代码可以根据被划分的数据来选择适应的比例范围和步长、尺寸。 ZedGraph 继承了Framework中的UserControl接口,所以允许用户在VS 的IDE 环境中 进行拖放操作。增加了对其它语言的访问接口支持,如C+ + ,VB。

import win.ui;
/*DSG{{*/
mainForm = win.form(text="ZedGraph";right=959;bottom=591;composited=1)
mainForm.add(
custom={cls="custom";text="自定义控件";left=17;top=40;right=938;bottom=573;z=1}
)
/*}}*/
import dotNet;
import System.Drawing;
import System.Windows.Forms;
dll = dotNet.loadFile("\res\ZedGraph.dll");
//创建图表容器
zedGraphCtrl = dll.new("ZedGraphControl");
System.Windows.Forms.CreateEmbed(zedGraphCtrl, mainForm.custom);
//获取画板
graphPane = zedGraphCtrl.GraphPane;
//创建数据
list = dll.new("PointPairList");
list.Add(1, 10);
list.Add(2, 15);
list.Add(3, 26);
list.Add(4, 17);
list.Add(5, 20);
//添加柱状图
graphPane.AddBar("Test Bar", list, System.Drawing.Color.Brown);
//画到zedGraphControl控件中,此句必加
zedGraphCtrl.AxisChange();
zedGraphCtrl.Refresh();
mainForm.show();
return win.loopMessage();
//mainForm需开启双缓冲ZedGraph可以更自由地定义组件式样,不像Nplot的式样有很多幺蛾子的问题。
但是,ZedGraph图表种类不像Nplot那么丰富,但一般常规用用也够用了。
8 个回复 | 最后更新于 2022-07-04
2022-07-04
#8
回复#6 @admin :
我重新试了一下ScottPlot
import dotNet;
import System.Drawing;
import System.Windows.Forms;
dotNet.reference({
"ScottPlot" = "/res/ScottPlot.dll";
"WinForms" = "/res/ScottPlot.WinForms.dll";
});
ScottPlot = dotNet.load("ScottPlot");
WinForms = dotNet.load("WinForms");
Chart = WinForms.new("ScottPlot.FormsPlot");
plt = Chart.Plot;
data = table.array(3900, 0);
xs = table.array(3900, 0);
for i=1;3900 {
data[i] = math.random(1, 100);
xs[i] = i;
}
plt.AddScatter(xs, data);
System.Windows.Forms.CreateEmbed(Chart, mainForm.custom);是可以正常显示的, 不用dotNet.double就正常了。
完美了

登录后方可回帖

//折线图 ZedGraph = dll.import("ZedGraph") graphPane.AddCurve("Test Bar", list, System.Drawing.Color.Brown, ZedGraph.SymbolType.None);动态数据也完全没问题