Java:非常简单的散点图实用程序

时间:2009-12-06 23:02:21

标签: java charts scatter-plot

我知道有很多java绘图库的比较,但我找不到我需要的东西。我只想要一个令人费解的简单工具包,它可以从一组坐标创建散点图的图像。没有GUI,没有交互,没有花哨的显示,只有带点的基本XY坐标系。

使用能提供比我需要的更多功能的东西并不是世界末日,但我宁愿不这样做。你知道我在找什么吗?

4 个答案:

答案 0 :(得分:7)

你看过JFreeChart了吗?虽然它可以做一些非常先进的事情,但它也做得很简单。下面显示的是散点图功能的屏幕截图。

alt text
(来源:jfree.org

答案 1 :(得分:3)

我环顾四周存在的东西,并意识到jcckit在技术上相当不错,但只是缺少一个简单的包装来使它易于使用。

所以我分叉了它并制作了一个非常简单的包装器。以下是使用方法:

import static easyjcckit.QuickPlot.*;

double[] xaxis = new double[]{0,1,2,3,4,5};
double[] yvalues = new double[]{0,1,4,9,16,25};
scatter( xaxis, yvalues ); // create a plot using xaxis and yvalues
double[] yvalues2 = new double[]{0,1,2,3,4,5};
addScatter( xaxis, yvalues2 ); // create a second plot on top of first

System.out.println("Press enter to exit");
System.in.read();

除散点图外,如果您希望使用'addPlot'和'plot',您可以自由地将线添加到相同的轴。

以下是代码:https://bitbucket.org/hughperkins/easyjcckit

答案 2 :(得分:2)

您使用自定义JPanel绘制数据(未经过测试,但您明白了......)

private List<Point2D> data=(...);

JPanel pane=new JPanel()
{
protected paintComponent(Graphics2D g)
{
super.paintComponent(g);
int minx=(...),miny=(...),maxx=(...),maxy=(...);
for(Point2D p: data)
 {
 int x=((p.getX()-minx)/(maxx-minx))*this.getWidth();
 int y=((p.getY()-miny)/(maxy-miny))*this.getHeight();
 g.drawLine(x-5,y,x+5,y);
 g.drawLine(x,y-5,x,y+5);
 }
}
pane.setOpaque(true);
(...)
anotherComponent.add(pane);
(...)
}

答案 3 :(得分:1)

您也可以查看Simple Java Plot。最小的例子(没有选项):

Plot plot = Plot.plot(null).
    // setting data
    series(null, Plot.data().
        xy(1, 2).
        xy(3, 4), null);
// saving sample_minimal.png
plot.save("sample_minimal", "png");