Hallo zusammen,
ich wollte einmal die Frage in die Runde schmeißen ob jemand Erfahrung mit Linecharts in Java hat?
Denn ich habe mein Programm soweit das es einen Liniendiagramm erstellt und alle Werte richtig aufnimmt doch leider steht in meiner Legende (Datenreihe 1, Datenreihe 2, usw.).
Nun meine Frage:
Wie kann ich die Legende manuell beschriften bzw. kann angeben welcher Bereich für die Beschriften verwendet werden soll?
Dies ist meine Methode zur Erstellung des Diagramms, falls mehr benötigt wird oder noch Fragen dazu gibt gebt Bescheid:
Ich bedanke mich gleich im Voraus für alle Bemühungen und wünsche euch einen schönen Tag.
Mit freundlichen Grüßen
Morinho
ich wollte einmal die Frage in die Runde schmeißen ob jemand Erfahrung mit Linecharts in Java hat?
Denn ich habe mein Programm soweit das es einen Liniendiagramm erstellt und alle Werte richtig aufnimmt doch leider steht in meiner Legende (Datenreihe 1, Datenreihe 2, usw.).
Nun meine Frage:
Wie kann ich die Legende manuell beschriften bzw. kann angeben welcher Bereich für die Beschriften verwendet werden soll?
Dies ist meine Methode zur Erstellung des Diagramms, falls mehr benötigt wird oder noch Fragen dazu gibt gebt Bescheid:
Code:
public void DiagrammErstellen(){
try{
XSSFDrawing diagramm = dsheet.createDrawingPatriarch(); //das Diagramm wird erstellt
XSSFClientAnchor dposition = diagramm.createAnchor(0, 0, 0, 0, 1, 8, 14, 17); // die Position sowie Größe des Diagramms wird festgelegt
XSSFChart chart = diagramm.createChart(dposition); //das Diagramm wird positioniert
XSSFChartLegend legende = chart.getOrCreateLegend(); //die Legende wird erstellt
legende.setPosition(LegendPosition.BOTTOM); //die Position der Legende wird so eingestellt das sie unter dem Diagramm steht
LineChartData data = chart.getChartDataFactory().createLineChartData(); //die Diagrammart wird initialisiert
// Die Achsen des Diagramms werden erstellt
ChartAxis bottomAxis = chart.getChartAxisFactory().createCategoryAxis(
AxisPosition.BOTTOM);
ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(
AxisPosition.LEFT);
leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); //Gibt an mit welchem Wert die Achsen anfängt (hier: Zero = 0)
//Nun werden die Werte der x-Achse initialisiert und die benötigten Daten integriert (y-Achsen)
ChartDataSource<Number> xs = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(arList.size()+4, 2*arList.size()+4, 0, 0));
ChartDataSource<Number> ys1 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+3, ardata.size()+3));
ChartDataSource<Number> ys2 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+4, ardata.size()+4));
ChartDataSource<Number> ys3 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+5, ardata.size()+5));
ChartDataSource<Number> ys4 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+6, ardata.size()+6));
ChartDataSource<Number> ys5 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+7, ardata.size()+7));
ChartDataSource<Number> ys6 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+8, ardata.size()+8));
ChartDataSource<Number> ys7 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+9, ardata.size()+9));
ChartDataSource<Number> ys8 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+10, ardata.size()+10));
ChartDataSource<Number> ys10 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+12, ardata.size()+12));
ChartDataSource<Number> ys11 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+13, ardata.size()+13));
ChartDataSource<Number> ys12 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+14, ardata.size()+14));
ChartDataSource<Number> ys13 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+15, ardata.size()+15));
ChartDataSource<Number> ys15 = DataSources.fromNumericCellRange(msheet,
new CellRangeAddress(34, arList.size(), ardata.size()+17, ardata.size()+17));
data.addSerie(xs, ys1);
data.addSerie(xs, ys2);
data.addSerie(xs, ys3);
data.addSerie(xs, ys4);
data.addSerie(xs, ys5);
data.addSerie(xs, ys6);
data.addSerie(xs, ys7);
data.addSerie(xs, ys8);
data.addSerie(xs, ys10);
data.addSerie(xs, ys11);
data.addSerie(xs, ys12);
data.addSerie(xs, ys13);
data.addSerie(xs, ys15);
chart.plot(data, bottomAxis, leftAxis);
System.out.println("Diagramm: Erfolgreich!");
} //try-Schleife endet
//zum fangen von auftretenden Fehlern
catch ( Exception ex ) {
ex.printStackTrace();
} //catch-Bedingung endet
}
Ich bedanke mich gleich im Voraus für alle Bemühungen und wünsche euch einen schönen Tag.
Mit freundlichen Grüßen
Morinho