Frage

Ich weiß, es gibt viele Vergleiche von Java-Bibliotheken Plotten gibt, aber ich finde nicht, was ich brauche. Ich möchte nur einen nervtötend einfachen Toolkit, das Bild von Scatterplots aus einem Satz von Koordinaten erzeugt. Keine GUI, keine Interaktion, keine Phantasie-Display, nur eine grundlegende XY-Koordinatensystem mit Punkten.

Es wäre nicht das Ende der Welt sein, etwas zu verwenden, die viel mehr Funktionalität bietet als ich brauche, aber ich möchte lieber nicht. Kennen Sie irgendetwas wie das, was ich suche?

War es hilfreich?

Lösung

Haben Sie sich JFreeChart ? Während es einige sehr fortschrittliche Dinge tun kann, tut es auch die ebenso einfach. Unten ist ein Screenshot von seiner Streudiagramm-Fähigkeit.


(Quelle: jfree.org )

Andere Tipps

Ich sah mich um, was existiert, und erkannte, dass jcckit technisch ziemlich gut, aber es fehlt nur eine einfache Wrapper um sie es einfach zu bedienen zu machen.

So gegabelt ich es und machte eine wirklich einfache Wrapper. Hier ist, wie zu verwenden:

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();

Neben Streudiagramme können Sie frei Linien den gleichen Achsen wenn Sie es wünschen mit ‚addPlot‘ und ‚plot‘.

Hier ist der Code: https://bitbucket.org/hughperkins/easyjcckit

Sie ein Verwenden Sie eine benutzerdefinierte JPanel Ihre Daten zu ziehen (nicht getestet, aber Sie erhalten die Idee ...)

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);
(...)
}

Auch Sie könnten überprüfen Einfache Java Plot . Minimal Beispiel (keine Optionen):

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");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top