基于SWT的Java图表类库SWTChart
jopen
10年前
SWTChart是一款基于SWT的Java图表类库,也正因为是基于SWT的缘故,SWTChart应用起来非常方便,而且也相当轻巧。
SWTChart支持多种图表类型,包括:线图 、散点图 、堆栈图 、对数标度 、分类轴 、多轴 、柱形图 、面积图 、步骤图 、轴取向 、系列标签等。
高可扩展性
所有SWTChart小部件是基于SWT的,这样就可以轻松实现窗口小部件,也可以很容易地扩展功能。作为SWTChart一个例 子,SWTChart Extension与SWTChart捆绑在一起,这样你就可以得到一些想法如何扩展它。 SWTChart Extension有鼠标缩放,或者用方向键翻页的功能。当然,除了一些公共的API外,我们也可以直接定制SWTChart,因为SWTChart是完 全开源的。
高性能
SWTChart提供处理一系列大数据的能力。即使出百万个数据点,重新绘制或调整图表面板并不需要很长一段时间。内部算法不是简单地以一定时间间隔采样数据,而是根据当前屏幕分辨率来计算需要显示多少个点。因此,即使有在大量的数据点,也不会再屏幕上不显示。
轻量级
SWTChart具有轻量级的基本特点。 SWTChart jar文件的文件大小约为180KB,包括源代码。这很容易让你发布你的应用程序。
使用方法
SWTChart绘制线形图
// create a chart Chart chart = new Chart(composite, SWT.NONE); // set titles chart.getTitle().setText("Line Chart Example"); chart.getAxisSet().getXAxis(0).getTitle().setText("Data Points"); chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude"); // create line series ILineSeries lineSeries = (ILineSeries) chart.getSeriesSet() .createSeries(SeriesType.LINE, "line series"); lineSeries.setYSeries(ySeries); // adjust the axis range chart.getAxisSet().adjustRange();
SWTChart绘制柱形图:
// create a chart Chart chart = new Chart(composite, SWT.NONE); // set titles chart.getTitle().setText("Bar Chart Example"); chart.getAxisSet().getXAxis(0).getTitle().setText("Data Points"); chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude"); // create bar series IBarSeries barSeries = (IBarSeries) chart.getSeriesSet() .createSeries(SeriesType.BAR, "bar series"); barSeries.setYSeries(ySeries); // adjust the axis range chart.getAxisSet().adjustRange();
SWTChart绘制堆栈图:
// create a chart Chart chart = new Chart(composite, SWT.NONE); // set titles chart.getTitle().setText("Stack Series Example"); chart.getAxisSet().getXAxis(0).getTitle().setText("Month"); chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude"); // set category chart.getAxisSet().getXAxis(0).enableCategory(true); chart.getAxisSet().getXAxis(0).setCategorySeries( new String[] { "Jan", "Feb", "Mar", "Apr", "May" }); // create bar series IBarSeries barSeries1 = (IBarSeries) chart.getSeriesSet().createSeries( SeriesType.BAR, "bar series 1"); barSeries1.setYSeries(ySeries1); barSeries1.setBarColor(Display.getDefault().getSystemColor( SWT.COLOR_GREEN)); IBarSeries barSeries2 = (IBarSeries) chart.getSeriesSet().createSeries( SeriesType.BAR, "bar series 2"); barSeries2.setYSeries(ySeries2); // enable stack series barSeries1.enableStack(true); barSeries2.enableStack(true); // adjust the axis range chart.getAxisSet().adjustRange();
SWTChart还可以绘制更多的图表类型,具体可以阅读SWTChart的官方文档,可以在文末的链接中获取。