Diagramme erstellen per Bild

Jep da liegt das Problem ^^

Ausserdem habe ich gedacht, dass sich vielleicht wer damit auskennt, wie ich zum Beispiel auch das KoordinatenSystem so anpasse, dass es auch auf dem Bild beim Ursprung des gezeichneten KoordSys anfängt und y auch nach oben geht anstatt nach unten
 
Mit g2d.translate(X,Y); kannst du den Ursprung des Koordinatensystems verändern.
g2d.translate(<DeineZeichenFläche>.getWidth()/2, <DeineZeichenFläache>.getHeight()/2); <-- Damit setzt du das Koordinatensystem in die Mitte
 
Und dass mit der Y-Koordinate kannst du so aushebelen, dass du deinen Wert für Y (z.B. der von einem Punkt) mit -1 Multiplizierst
 
Danke

Habe im moment ein größeres Problem!

Die Daten sind wie folgt aufgebaut
Code:
00:05-00:10
          Rechner1
                    Test1
                    Test2
                    Test3
         Rechner2
                    Test1
                    Test3
00:15-00:20
          Rechner1
                    Test2
                    Test3
          Rechner2
                    Test2
usw.
Nun zähle ich die einzelnen Tests und speichere das in eine andere Map und zwar in eine <String,Map<String,Integer>>

Darin steht dann
Code:
005         //Kürzel für die Zeit
          Test1, 2
          Test2, 1
          Test3, 2
015
          Test2, 2
          Test3, 1

Und für jeden Test muss ich jetzt ein Bild erstellen, aber irgendwie stehe ich gerade aufm Schlauch.
Das beste wäre natürlich, wenn ich die Map so durchgehe, dass ich erst alle Test1 bekomme, dafür dann die Grafik erstelle und dann kommt Test2 dran usw.

Würde ich für jeden Test eine Map haben in der Form <String,Integer> (Zeitkürzel, Anzahl) dann wäre es kein Problem, da mein jetziges Diagramm erstellen damit genauso funktioniert.

Jemand eine Idee?
 
Es ist schwierig darzustellen, da es auch recht kompliziert ist.

Also die Daten sind immer in 5 Minuten zusammengefasst. Und innerhalb dieser 5 Minuten sind sie nochmal verschiedenen Rechner zugeteilt. Und ich müsste jetzt wissen, wieoft z.B. 'Test1' innerhalb der 5 Minuten vorkommt, egal zu welchem Rechner es gehört.

Soweit habe ich es eigentlich auch schon.


Vorher war es so, dass ich nur die verschiedenen Tests pro 5 Minuten genommen habe, also bei dem obigen Beispiel wäre es dann
Code:
00:05-00:10 = 3
00:15-00:20 = 2
Da war es kein Problem, das konnte ich dann auch ganz einfach in eine <String, Integer> Map speichern und an meine DiagrammPrinter Klasse übergeben.

Nun kommt aber hinzu, dass ich Diagramme erstellen soll, wieoft z.B. Test1 vorkommt.
Und nun wieß ich nicht wie ich das zusammen fassen soll. Habe es wie oben beschrieben schon in einer <Strin, Map<String,Integer>>-Map, allerdings kann ich die nicht an meine DiagrammPrinter Klasse übergeben.

Später müsste es am besten so laufen:
Alle Daten für Test1 sammeln -> Diagramm zeichnen -> Alle Daten für Test2 sammeln -> Diagramm zeichnen -> Alle Daten für Test3 sammeln -> Diagramm zeichnen usw.

Ich glaube es ist nicht wirklich klarer geworden ^^ Aber es ist eine komplizierte Sache
 
Wie wärs wenn du die Daten so speicherst:

Eine HashMap: Schlüssel ist immer die Zeit und Wert ist eine Weitere HashMap mit: Schlüssel ist der Rechner und Wert, eine Zahl die sagt wie oft
 
So ist es ja schon gespeichert, wobei bei der zweiten HashMap der Schlüssel nicht der Rechner ist, sondern der Name des Tests, da es ja nicht auf den Rechner ankommt.

Allerdings weiß ich jetzt nicht wie ich das ganze an meinen DiagrammPrinter übergeben soll:
Code:
public DiagrammPrinter() {
		try {
			Properties properties = new Properties(System.getProperties());
			properties.load(this.getClass().getResourceAsStream("/properties.txt"));
			this.OutputDir = properties.getProperty("OutputDir");
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
	
    private String OutputDir="";
    private ArrayList<Point> points;
    private int x=0;
    
    private int getX() {
    	return this.x;
    }
    
    private class Point {
    	private int y=0;
    	private int x=0;
    	
    	private int getX() {
    		return this.x;
    	}
    	
    	private int getY() {
    		return this.y;
    	}
    	
    	private void incX() {
    		DiagrammPrinter.this.x++;
    	}
    	
    	public Point(int y) {
    		this.x = DiagrammPrinter.this.getX();
    		this.incX();
    		this.y = y;
    	}
    }
    
    public void setPoints(ArrayList<Point> points) {
    	this.points = points;
    }
    
    public Point createPoint(int y) {
    	return new Point(y);
    }

Da habe ich halt noch irgendwie das Problem, dass ich die Map übergebe und dann auch alles richtig ausgewertet wird
 

Neue Beiträge

Zurück