Hallo,
Ich versuche 10000 Lotto 6 aus 45 Ziehung zu machen diese speichere ich in einer map mit (zahl,anzahl) und dieses dann in ein Histogramm einzutragen. Zu den Ziehungen hab ich keine Fragen, funktioniert alles wie erwünscht wollte es nur kurz erwähnen. Wenn ich das Histogramm mit drawLine zeichnen funktioniert es genau wie erwünscht (sieht aber nicht schön aus), also versuche ich nun das Histogramm mit fillRect zu zeichnen mein Problem ist nun, dass ich das Histogramm jetzt immer von oben nach unten zeichne. Und das ist ja nicht wirklich üblich für ein Diagramm. Ich weiß dass der Ursprung beim Programmieren oben rechts liegt und dann von oben nach unten positiv verläuft aber wie kann ich das Rechteck nach oben zeichnen? Hab es mit -(Höhe) versucht aber dann hat es auch verständlich nichts gezeichnet.
Also wie kann ich es am besten von unten nach oben zeichnen lassen?
Die beiden Anhänge zeigen mein Ergebnis und hier ist mein Code:
Die -800 bzw. +700 sind nur werte damit es ins Fenster passt weil die Werte so groß sind die mir die Map liefert (werde ich noch optimieren wenn ich die Ziehungsanzahl veränderbar mache, ist nur provisorisch)
Ich versuche 10000 Lotto 6 aus 45 Ziehung zu machen diese speichere ich in einer map mit (zahl,anzahl) und dieses dann in ein Histogramm einzutragen. Zu den Ziehungen hab ich keine Fragen, funktioniert alles wie erwünscht wollte es nur kurz erwähnen. Wenn ich das Histogramm mit drawLine zeichnen funktioniert es genau wie erwünscht (sieht aber nicht schön aus), also versuche ich nun das Histogramm mit fillRect zu zeichnen mein Problem ist nun, dass ich das Histogramm jetzt immer von oben nach unten zeichne. Und das ist ja nicht wirklich üblich für ein Diagramm. Ich weiß dass der Ursprung beim Programmieren oben rechts liegt und dann von oben nach unten positiv verläuft aber wie kann ich das Rechteck nach oben zeichnen? Hab es mit -(Höhe) versucht aber dann hat es auch verständlich nichts gezeichnet.
Also wie kann ich es am besten von unten nach oben zeichnen lassen?
Die beiden Anhänge zeigen mein Ergebnis und hier ist mein Code:
Java:
public void paint(Graphics g) {
super.paint(g);
int height = getHeight();
int width = getWidth();
int x =10;
haufigkeit=model.getMap();
for(int i=1;i<=45;i++){
int y;
y=haufigkeit.get(i);
Color color = new Color(0,0,(int)(150+Math.random()*100));
g.setColor(color);
g.fillRect(x,50 , 10,y-800 );
g.drawLine(x, height-50, x, 700+height-y);
g.drawString(""+i, x, 10);
x+=20;
}
}