JFreeChart - Linienstärke einstellen

Status
Nicht offen für weitere Antworten.

LukeVlbg

Aktives Mitglied
Ich würde gerne die Linienstärke in meinem Chart ändern. Nomalerweise ist dies mit
Code:
plot.getRenderer().setSeriesStroke(0, new BasicStroke(3));
möglich, aber dies gilt meines Wissen nur wenn es sich um einen "XYLineAndShapeRenderer" handelt.

In meinem Beispiel verwende ich ein Balken und zwei Linine Diagramme parallel, da kann ich diesen Renderer nicht einbinden.

Hier mein Code:
Java:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.category.StandardBarPainter;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;


public class LineBarOverlaid extends ApplicationFrame {
	
	/**
	 * Serial version UID
	 */
	private static final long serialVersionUID = 1L;

	public LineBarOverlaid(final String title) {
		super(title);
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();

		dataset.addValue(90, "Rückmeldungen", "Di, 2009-07-21");
		dataset.addValue(75, "Rückmeldungen", "Mi, 2009-07-22");
		dataset.addValue(74, "Rückmeldungen", "Do, 2009-07-23");
		dataset.addValue(0, "Rückmeldungen", "Fr, 2009-07-24");
		dataset.addValue(0, "Rückmeldungen", "Sa, 2009-07-25");
		dataset.addValue(0, "Rückmeldungen", "So, 2009-07-26");
		dataset.addValue(3, "Rückmeldungen", "Mo, 2009-07-27");
		dataset.addValue(5, "Rückmeldungen", "Di, 2009-07-28");
		dataset.addValue(0, "Rückmeldungen", "Mi, 2009-07-29");
		dataset.addValue(0, "Rückmeldungen", "Do, 2009-07-30");
		dataset.addValue(0, "Rückmeldungen", "Fr, 2009-07-31");
		dataset.addValue(0, "Rückmeldungen", "Sa, 2009-08-01");
		dataset.addValue(0, "Rückmeldungen", "So, 2009-08-02");
		dataset.addValue(0, "Rückmeldungen", "Mo, 2009-08-03");
		dataset.addValue(0, "Rückmeldungen", "Di, 2009-08-04");
		dataset.addValue(0, "Rückmeldungen", "Mi, 2009-08-05");
		dataset.addValue(0, "Rückmeldungen", "Do, 2009-08-06");
		dataset.addValue(0, "Rückmeldungen", "Fr, 2009-08-07");
		dataset.addValue(0, "Rückmeldungen", "Sa, 2009-08-08");
		dataset.addValue(0, "Rückmeldungen", "So, 2009-08-09");
		dataset.addValue(38, "Rückmeldungen", "Mo, 2009-08-10");
		
		final BarRenderer renderer = new BarRenderer();
		renderer.setMaximumBarWidth(0.01);
		renderer.setItemLabelsVisible(true);
		renderer.setSeriesPaint(0, new Color(0, 141, 188));
		renderer.setDrawBarOutline(true);
		
		final CategoryPlot plot = new CategoryPlot();
		plot.setDataset(dataset);
		plot.setRenderer(renderer);
		
		renderer.setBarPainter(new StandardBarPainter());
		renderer.setShadowVisible(false);
		
		plot.setDomainAxis(new CategoryAxis("Datum"));
		plot.setRangeAxis(new NumberAxis("Stunden"));
		
		plot.setOrientation(PlotOrientation.VERTICAL);
		plot.setRangeGridlinesVisible(false);
		plot.setDomainGridlinesVisible(false);
		plot.setOutlineVisible(false);	
		
		DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
		dataset2.addValue(28, "Durchschnitt", "Di, 2009-07-21");
		dataset2.addValue(28, "Durchschnitt", "Mi, 2009-07-22");
		dataset2.addValue(28, "Durchschnitt", "Do, 2009-07-23");
		dataset2.addValue(28, "Durchschnitt", "Fr, 2009-07-24");
		dataset2.addValue(28, "Durchschnitt", "Sa, 2009-07-25");
		dataset2.addValue(28, "Durchschnitt", "So, 2009-07-26");
		dataset2.addValue(28, "Durchschnitt", "Mo, 2009-07-27");
		dataset2.addValue(28, "Durchschnitt", "Di, 2009-07-28");
		dataset2.addValue(28, "Durchschnitt", "Mi, 2009-07-29");
		dataset2.addValue(28, "Durchschnitt", "Do, 2009-07-30");
		dataset2.addValue(28, "Durchschnitt", "Fr, 2009-07-31");
		dataset2.addValue(28, "Durchschnitt", "Sa, 2009-08-01");
		dataset2.addValue(28, "Durchschnitt", "So, 2009-08-02");
		dataset2.addValue(28, "Durchschnitt", "Mo, 2009-08-03");
		dataset2.addValue(28, "Durchschnitt", "Di, 2009-08-04");
		dataset2.addValue(28, "Durchschnitt", "Mi, 2009-08-05");
		dataset2.addValue(28, "Durchschnitt", "Do, 2009-08-06");
		dataset2.addValue(28, "Durchschnitt", "Fr, 2009-08-07");
		dataset2.addValue(28, "Durchschnitt", "Sa, 2009-08-08");
		dataset2.addValue(28, "Durchschnitt", "So, 2009-08-09");
		dataset2.addValue(28, "Durchschnitt", "Mo, 2009-08-10");

		DefaultCategoryDataset dataset3 = new DefaultCategoryDataset();
		dataset3.addValue(60, "Plankapazität", "Di, 2009-07-21");
		dataset3.addValue(60, "Plankapazität", "Mi, 2009-07-22");
		dataset3.addValue(60, "Plankapazität", "Do, 2009-07-23");
		dataset3.addValue(60, "Plankapazität", "Fr, 2009-07-24");
		dataset3.addValue(0, "Plankapazität", "Sa, 2009-07-25");
		dataset3.addValue(0, "Plankapazität", "So, 2009-07-26");
		dataset3.addValue(60, "Plankapazität", "Mo, 2009-07-27");
		dataset3.addValue(60, "Plankapazität", "Di, 2009-07-28");
		dataset3.addValue(60, "Plankapazität", "Mi, 2009-07-29");
		dataset3.addValue(60, "Plankapazität", "Do, 2009-07-30");
		dataset3.addValue(60, "Plankapazität", "Fr, 2009-07-31");
		dataset3.addValue(0, "Plankapazität", "Sa, 2009-08-01");
		dataset3.addValue(0, "Plankapazität", "So, 2009-08-02");
		dataset3.addValue(60, "Plankapazität", "Mo, 2009-08-03");
		dataset3.addValue(60, "Plankapazität", "Di, 2009-08-04");
		dataset3.addValue(60, "Plankapazität", "Mi, 2009-08-05");
		dataset3.addValue(60, "Plankapazität", "Do, 2009-08-06");
		dataset3.addValue(60, "Plankapazität", "Fr, 2009-08-07");
		dataset3.addValue(0, "Plankapazität", "Sa, 2009-08-08");
		dataset3.addValue(0, "Plankapazität", "So, 2009-08-09");
		dataset3.addValue(60, "Plankapazität", "Mo, 2009-08-10");

		
		final LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();
		
		renderer2.setSeriesPaint(1, Color.green);
		renderer2.setShapesVisible(false);
		plot.setDataset(1, dataset2);
		plot.setRenderer(1, renderer2);
//		plot.getRenderer().setSeriesStroke(2, new BasicStroke(1.5F));
//		renderer2.setSeriesStroke(1, new BasicStroke(3));


        plot.setDataset(2, dataset3);
        final LineAndShapeRenderer renderer3 = new LineAndShapeRenderer();
        plot.setRenderer(2, renderer3);
        renderer3.setShapesVisible(false);
        
        plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
        
        plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90);
        plot.getRangeAxis().setRange(0, 100);
        
        final JFreeChart chart = new JFreeChart("", new Font("Tahoma", Font.BOLD, 12), plot, true);
        chart.setTitle("Titel");
        chart.getLegend().setFrame(BlockBorder.NONE);

        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(1000, 450));
        setContentPane(chartPanel);
        chartPanel.setRangeZoomable(false);
        chart.setBackgroundPaint(Color.WHITE);
        
	}
	
	public static void main(String args[]) {
		
		final LineBarOverlaid overlaid = new LineBarOverlaid("Line- and Barchart overlaid");
		overlaid.pack();
		RefineryUtilities.centerFrameOnScreen(overlaid);
		overlaid.setVisible(true);
	}
}
 
S

SlaterB

Gast
plot.getRenderer() ist der BarRenderer, da macht ein Stroke wenig Sinn,
um welche Linie geht es?

und du kannst doch bei jedem Renderer setSeriesStroke aufruferen, selbst beim BarRenderer ohne Sinn,
die beiden auskommentierten Befehle 133+134 gehen auch,
jeder Renderer bzw. jedes der drei DataSets hat aber hier nur eine Serie, ein SerienIndex > 0 macht da derzeit wieder wenig Sinn

> renderer2.setSeriesPaint(1, Color.green);
genauso, mit 0 statt 1 wird die Chart grüner


> dies gilt meines Wissen nur wenn es sich um einen "XYLineAndShapeRenderer" handelt

wer bringt dich auf solche Ideen, letztes mal haben wir doch alles in Detail für ganz normale LineAndShapeRenderer besprochen,
du willst wohl dass ich gar nicht mehr antworte..
 
Zuletzt bearbeitet von einem Moderator:

LukeVlbg

Aktives Mitglied
Im Prinzip geht es um beide Linien. Das mit dem Index hab ich zuerst nicht geschnallt. Aber nachdem du´s Beschrieben hast, ist es eigentlich ganz logisch. Dachte der Index wäre bezogen auf das Dataset.
Aber stimmt das mit dem Renderer hatten wir letzens schon mal. Wollte wohl noch nicht ganz in meinen Kopf rein.

du willst wohl dass ich gar nicht mehr antworte..
Ganz im Gegenteil - ich bin immer froh eine kompetente, verständliche Antwort zu bekommen.
Bin dir sehr dankbar dafür :)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H JFreeChart Charts überlagern AWT, Swing, JavaFX & SWT 2
C JFreeChart x-Achse mit absteigenden Werten AWT, Swing, JavaFX & SWT 1
K JFreeChart nicht ohne BarChartDemo startklar? AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
B JFreeChart Gantt Höhe Tasks AWT, Swing, JavaFX & SWT 1
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
V JFreechart: In Linechart Linien einzeichnen und Bereiche färben AWT, Swing, JavaFX & SWT 4
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
M JFreechart Zoom out AWT, Swing, JavaFX & SWT 2
M Swing JFreechart X-Achse Tick auslesen AWT, Swing, JavaFX & SWT 13
M Swing JFreechart zoom x-achse neue Werte AWT, Swing, JavaFX & SWT 4
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
G JFreeChart - SetSeriesColor Problem AWT, Swing, JavaFX & SWT 3
K 2D-Grafik JFreeChart plot.setBackgroundImage() AWT, Swing, JavaFX & SWT 1
K 2D-Grafik JFreeChart DateAxis AWT, Swing, JavaFX & SWT 9
T Event Handling JFreeChart Update AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
A JFreeChart in GUI AWT, Swing, JavaFX & SWT 3
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
B JFreeChart-Erweiterungen AWT, Swing, JavaFX & SWT 4
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
I XML - JFreeChart AWT, Swing, JavaFX & SWT 15
N Dynamische JFreechart updated UI nicht AWT, Swing, JavaFX & SWT 5
S JFreeChart - Schriftgröße der Legende AWT, Swing, JavaFX & SWT 2
O Swing JFreechart subtitle formatieren AWT, Swing, JavaFX & SWT 3
N JFreeChart: Plot soll mit skalieren AWT, Swing, JavaFX & SWT 5
R JFreeChart Plots AWT, Swing, JavaFX & SWT 6
J JFreechart spezielles Balkendiagramm AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
T JFreeChart Linine einzeichnen AWT, Swing, JavaFX & SWT 2
M JFreeChart Ausrichtung der Balken AWT, Swing, JavaFX & SWT 2
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
A Swing JFreeChart, Gantt, Schichtplan AWT, Swing, JavaFX & SWT 3
R JFreeChart Skalierung zur Laufzeit ändern AWT, Swing, JavaFX & SWT 7
F Wie lade ich eine CategoryDataset aus XML ins JFreeChart? AWT, Swing, JavaFX & SWT 9
J JFreeChart - mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
A JFreeChart: 2 X-Achsen für ein Dataset AWT, Swing, JavaFX & SWT 2
T JFreeChart export Problem AWT, Swing, JavaFX & SWT 4
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
D JFreechart maximalangezeigter Wertebereich AWT, Swing, JavaFX & SWT 3
B AWT [JFreeChart] malt nicht so wie ich will :-( AWT, Swing, JavaFX & SWT 2
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
L Labels sichtbar - JFreeChart AWT, Swing, JavaFX & SWT 5
A Schachbrettartiges Diagramm mit JFreeChart AWT, Swing, JavaFX & SWT 4
E JFreeChart AWT, Swing, JavaFX & SWT 2
L Gantt Chart - JFreeChart AWT, Swing, JavaFX & SWT 5
K JFreeChart im JScrollPane ausblenden AWT, Swing, JavaFX & SWT 2
L JFreeChart Labelrotation AWT, Swing, JavaFX & SWT 2
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
L JFreeChart Balkenanordnung AWT, Swing, JavaFX & SWT 10
L JFreeChart Achsenskalierung AWT, Swing, JavaFX & SWT 4
L JFreeChart - Dataset befüllen AWT, Swing, JavaFX & SWT 2
L JFreeChart - Line Shapes AWT, Swing, JavaFX & SWT 15
N JFreeChart - Basics AWT, Swing, JavaFX & SWT 2
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
L JFreeChart - Legende vertikal AWT, Swing, JavaFX & SWT 5
L JFreeChart Einstellungen AWT, Swing, JavaFX & SWT 22
L JFreeChart - Gitterfarbe schwarz AWT, Swing, JavaFX & SWT 4
L JFreeChart StackedBar + Line-Chart kombinieren AWT, Swing, JavaFX & SWT 4
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
L JFreeChart - Legende beliebig positionieren AWT, Swing, JavaFX & SWT 16
G JFreechart Balken einfärben AWT, Swing, JavaFX & SWT 6
F Probleme mit NumberAxis bei JFreeChart AWT, Swing, JavaFX & SWT 5
G jfreechart (Diagramm speichern mit ein vorgegebenen Namen) AWT, Swing, JavaFX & SWT 6
S JFreeChart neu zeichnen sich das Datenset geändert hat. AWT, Swing, JavaFX & SWT 4
K JFreeChart Eigentschaften des Charts ändern AWT, Swing, JavaFX & SWT 8
G JFreeChart und das updaten AWT, Swing, JavaFX & SWT 7
G Ausser Jfreechart, Chart Programme? AWT, Swing, JavaFX & SWT 11
S Dimensionen JFreeChart AWT, Swing, JavaFX & SWT 5
S JFreeChart Stufendiagramm AWT, Swing, JavaFX & SWT 2
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
M JFreeChart Handbuch? AWT, Swing, JavaFX & SWT 8
P JFreeChart - TimeSeriesDiagram AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
J AWT Linienstärke AWT, Swing, JavaFX & SWT 3
T Linienstärke ändern AWT, Swing, JavaFX & SWT 4
_user_q [JavaFX] Spinner so einstellen, dass er nicht leer bleiben darf? AWT, Swing, JavaFX & SWT 6
I JOptionPane maximale Zeichen einstellen AWT, Swing, JavaFX & SWT 2
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
A JLabel zeichendicke einstellen AWT, Swing, JavaFX & SWT 3
J SWT Scrollgeschwindigkeit einstellen AWT, Swing, JavaFX & SWT 4
C Button Größe einstellen klappt nicht (setBounds) AWT, Swing, JavaFX & SWT 8
H Fenstergröße bei Mac und Windows gleich einstellen? AWT, Swing, JavaFX & SWT 3
eLogic Look And Feel - Einstellen AWT, Swing, JavaFX & SWT 3
N Richtiges einstellen der size von JPanels AWT, Swing, JavaFX & SWT 10
N Höhe einstellen JScrollPane AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben