JFreeChart Größe anpassen

FabianLurz

Bekanntes Mitglied
Hallo Leute,
habe mal wieder ein kleines Problem. Ich arbeite momentan viel mit JFreeChart um Statistiken auszuwerten. Funktioniert alles auch eigentlich super....jedoch möchte ich die Größe des Plots verändern.
Also generell geht es erstmal um eine BarChart. Nun ist es so, dass der Text der an den Achsen steht ziemlich lange ist. Dieser wird dann am Schluss nur noch mit "....." dargestellt. Ich möchte aber wie gesagt lieber den Plot verkleinern, damit die Beschriftung in ihrer ganzen Pracht dort steht :p
Hoffe ihr könnt mir helfen....habe wirklich schon viel gesucht aber nicht das passenden gefunden (nur wie man die Range verändert aber das bringt mir leider nicht viel).
Ich hoffe die Jungs von Jfreechart haben daran gedacht und soetwas gibt es überhaupt.
Grüße Fabian
 
S

SlaterB

Gast
hast du ein Beispielprogramm dafür, welches man anschauen und ändern kann?
... kenne ich nur bei der Domain-Achse unten, da hilft entweder, den Plot zu verbreitern oder den Text senkrecht zu setzen,

wie Plot verkleinern irgendwo helfen kann, kann ich mir gar nicht vorstellen
 

FabianLurz

Bekanntes Mitglied
Java:
private JFreeChart createChart(final CategoryDataset dataset) {

        // create the chart...
        final JFreeChart chart = ChartFactory.createBarChart3D(
                "Top Artikel", // chart title
                "", // domain axis label
                "", // range axis label
                dataset, // data
                PlotOrientation.HORIZONTAL, // orientation
                true, // include legend
                false, // tooltips?
                false // URLs?
                );


        // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...

        // set the background color for the chart...
        chart.setBackgroundPaint(Color.white);

        // get a reference to the plot for further customisation...
        final CategoryPlot plot = chart.getCategoryPlot();
        plot.setBackgroundPaint(Color.white);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRangeGridlinePaint(Color.white);
        plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
        plot.setDomainGridlinesVisible(false);
        plot.setRangeGridlinesVisible(true);
        plot.setRangeGridlinePaint(Color.black);
        plot.setDomainGridlinePaint(Color.black);
        plot.configureDomainAxes();
        plot.configureRangeAxes();
        
        

        

        // set the range axis to display integers only...
        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        rangeAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
        
        
        // disable bar outlines...
        final BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);

        // set up gradient paints for series...
        final GradientPaint gp0 = new GradientPaint(
                0.0f, 0.0f, Color.red,
                0.0f, 0.0f, Color.lightGray);
        final GradientPaint gp1 = new GradientPaint(
                0.0f, 0.0f, Color.red,
                0.0f, 0.0f, Color.lightGray);

        final GradientPaint gp2 = new GradientPaint(
                0.0f, 0.0f, Color.green,
                0.0f, 0.0f, Color.lightGray);
        renderer.setSeriesPaint(0, gp0);
        renderer.setSeriesPaint(1, gp1);
        renderer.setSeriesPaint(2, gp2);

        CategoryAxis cA = plot.getDomainAxis();
        cA.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
       
        // OPTIONAL CUSTOMISATION COMPLETED.

        return chart;

    }
Also das wäre der Abschnitt um den es ginge.
Gruß Fabian
 
S

SlaterB

Gast
eine GUI drumherum zur Anzeige kann ich ja notfalls noch ergänzen, obwohl vielleicht Größenangaben hier ziemlich wichtig wären,
aber fehlt nicht vorallem noch Daten die angezeigt werden sollen (dataset) oder Achsenbeschriftungen oder was immer das Problem ist?

stelle einfach ein Dummy-Programm mit main-Methode zusammen, kopieren, run, Problem sichtbar?

wenn möglich, dann nimm die Standard-Beispiele als Grundlage
ChartJava

edit:
ist es ein Bild wie
JFreeChart: Horizontal Bar Chart 3D Demo 2 : Bar Chart 3D HorizontalChartJava
? dann würde ich zumindest schon verstehen worum es ungefähr geht..
 
Zuletzt bearbeitet von einem Moderator:

FabianLurz

Bekanntes Mitglied
Achso ja...ja gut wollte jetzt nicht zu viel Code reinstellen. Hier noch das Dataset. Das Programm wird dann über eine andere Klasse aufgerufen (Denke das ist unwichtig ;))
Java:
  private CategoryDataset createDataset() {

        // row keys...
        final String series1 = "Bruttoumsatz";
        // create the dataset...
        final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        String[] Artikelbezeichung;
        String[] VMenge;
        String[] Preis;

        Artikelbezeichung = titel.split(";");
        VMenge = verkauft.split(";");
        Preis = preis.split(";");
        
        //Strings sortieren
        StringSort[] demo = new StringSort[Artikelbezeichung.length];
        for (int a = 0; a < Artikelbezeichung.length; a++) {
            demo[a] = new StringSort(Artikelbezeichung[a]+"  "+VMenge[a]+"  "+Preis[a], Integer.parseInt(VMenge[a]) * Double.parseDouble(Preis[a].replaceAll("€", "")));
        }
        Arrays.sort(demo, new Comparator<StringSort>() {

            @Override
            public int compare(StringSort p1, StringSort p2) {
                return p1.getPrice() < p2.getPrice() ? 1 : -1;
            }
        });
      
        //Datensatz füllen
        int i=0;
          for (StringSort p : demo) {
            if (p.getPrice() != 0) {
                dataset.addValue(p.getPrice(), series1, p.getDesignation());                
            }
            i++;
        }
        return dataset;

    }
Gruß Fabian und danke schonmal
 
S

SlaterB

Gast
siehe meine edits in der letzten Antwort und dein neuer Code ist in gewisser Hinsicht genausowenig hilfreich wie der vorherige,
er enthält keinerlei Daten, was nützt mir Artikelbezeichung[a]?
es geht darum eine Chart real zusammenzubauen, dafür sind reale Werte wie Category "Suppengemüse" nötig

zum nun schon dritten Mal: du musst ein Dummy-Programm zusammenstellen mit einem ganz einfachen DataSet,
"Suppengemüse"=2.3, "Tortenguss"=4.5 usw.
 

FabianLurz

Bekanntes Mitglied
Ja sry hab das gerade erst noch gesehen. Also und zwar ist es so....du hast ja in dem Bild dass du jetzt gemacht hast Istanbul etc.....also die Ländernamen stehen. Stell dir jetzt vor dass die noch viel länger sind....dann wird das wohl so angezeigt "Istanbul ist ein......" und ich will nicht die Punkte sondern es soll ausgeschrieben sein. Also muss es entweder die Möglichkeit geben den Plot zu verkleinern oder den Bereich für die Schrift vergrößern.
Ein Dummyprogramm zum vorstellen hast du ja schon eingestellt:) Also es ist eine BarChart wie in dem Bild....das orginal darf ich aus bestimmten Gründen nicht zeigen sry.
Gruß Fabian
 
S

SlaterB

Gast
gut, nun ist also ein Testprogramm gefunden, dein Originial wäre auch gar nicht interessant bzw. müsste quasi auf denselben Stand zusammengekürzt werden,

nun muss nur noch eine Lösung her, der gefährlichere Teil, mit Pech stehe ich jetzt ohne Tipp da ;)

irgendwie glaube ich dass ich eher durch zufälliges Durchschauen der Methoden was gefunden habe,
ein ...-Text wurde dann komplett dargestellt:
> axis.setMaximumCategoryLabelWidthRatio(1);
bezogen auf die DomainAxis dort, cA wahrscheinlich in deinem Code
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G jFreeChart Allgemeine Java-Themen 5
T Jfreechart continuous series mit fester Länge Allgemeine Java-Themen 23
H JFreechart createMultiplePieChart Allgemeine Java-Themen 2
M Suche Alternative zu JFreeChart Allgemeine Java-Themen 11
T jfreechart Linien/Punkttyp anpassen Allgemeine Java-Themen 1
S JFreechart: ValueMarker mit der Maus ziehen? Allgemeine Java-Themen 12
A JFreeChart funktioniert nicht :( Allgemeine Java-Themen 6
M Swing JFreechart x-Achse DateAxis, start im Ursprung Allgemeine Java-Themen 3
S Performante Visualisierung groẞer Datenmengen (ohne JFreeChart) Allgemeine Java-Themen 22
M Swing JFreeChart Domain Axis Label Abstand zu TickUnitLabel Allgemeine Java-Themen 9
S AWT JFreeChart in ein Label Allgemeine Java-Themen 7
J JFreeChart - Mehrere X-Achsen Einteilungen Allgemeine Java-Themen 3
T JFreeChart Diagramm speichern - Problem mit ImageIO nach Projektexport Allgemeine Java-Themen 3
B JFreeChart -> TimeSeries-Plot -> mehr y-Achsen Allgemeine Java-Themen 2
K JFreeChart - Einträge in DomainAxis anpassen Allgemeine Java-Themen 2
I 2D-Grafik JFreeChart ChartPanel Problem mit dynamischer Grösse Allgemeine Java-Themen 3
O JFreeChart: ständiges Updaten der Chart stoppen Allgemeine Java-Themen 4
M Diagramm mit JfreeChart Allgemeine Java-Themen 8
M JFreeChart mehrere PieCharts erstellen Allgemeine Java-Themen 2
M JFreeChart piechart - labelAnzeige Allgemeine Java-Themen 2
ARadauer JFreeChart: Beschriftung anzeigen Allgemeine Java-Themen 6
B JFreeChart - Achsenbeschriftung Allgemeine Java-Themen 4
ff Labels mit JFreeChart ausrichten Allgemeine Java-Themen 2
K JFreeChart Achsenbeschriftung ändern? Allgemeine Java-Themen 4
C jFreechart Diagram erstellen Allgemeine Java-Themen 2
G JFreeChart Allgemeine Java-Themen 5
G Jfreechart zwei charts Allgemeine Java-Themen 2
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
E JFreeChart jars mit in meine Jar packen Allgemeine Java-Themen 6
G jfreechart probleme mit dem package? Allgemeine Java-Themen 2
D JFreeChart und Kuchendiagramm Allgemeine Java-Themen 3
P JFreeChart Fehlermeldung Allgemeine Java-Themen 2
P jFreeChart, binäre Signale Allgemeine Java-Themen 2
P jfreeChart y- Achsen hinzufügen Allgemeine Java-Themen 2
P jfreeChart Allgemeine Java-Themen 9
MQue JFreeChart Allgemeine Java-Themen 3
K JFreeChart Allgemeine Java-Themen 3
K JFreeChart und itext: Bildprobleme Allgemeine Java-Themen 4
G java.lang.NullPointerException JFreeChart Allgemeine Java-Themen 5
M JFreeChart: Zuviele Balken, Übersicht leidet dehr darunter Allgemeine Java-Themen 6
G JFreeChart - Labels Allgemeine Java-Themen 2
G Suche Beispiele jFreeChart Allgemeine Java-Themen 12
G Daten aus MySQL-Datenbank an JFreeChart übergeben Allgemeine Java-Themen 3
G JFreeChart drucken Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
J Größe einer CD ermitteln Allgemeine Java-Themen 10
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3
C Ein Array mit der Größe von 1 KB erstellen Allgemeine Java-Themen 3
L Größe eines Objekts im Arbeitsspeicher Allgemeine Java-Themen 1
M ZipOutputStream gleiche Datei andere Größe? Allgemeine Java-Themen 0
M Array "Größe" anpassen Allgemeine Java-Themen 2
V Files mit Umlauten ergeben keine Größe Allgemeine Java-Themen 9
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8
F String in feste Größe zerlegen Allgemeine Java-Themen 11
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
W Größe des eingebauten Arbeitsspeichers auslesen Allgemeine Java-Themen 13
Developer_X Java3D-Ball größe angeben Allgemeine Java-Themen 12
reibi Größe Array aus bytes Allgemeine Java-Themen 14
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
G ändernde größe des GrindBagL Allgemeine Java-Themen 2
L unterschiedliche Größe beim serialisieren eines Objektes! Allgemeine Java-Themen 6
G itext größe von image Allgemeine Java-Themen 2
S array von unbekannter größe Allgemeine Java-Themen 2
T Größe eine Variablen in Bytes? Allgemeine Java-Themen 22
C Größe von einem File Allgemeine Java-Themen 9
D JFrame vergrößert nicht auf die gewünschte Größe Allgemeine Java-Themen 2
S Bild Größe verändern Allgemeine Java-Themen 2
G String Array Größe begrenzt? Allgemeine Java-Themen 4
B ArrayList mit Größe initialisieren Allgemeine Java-Themen 16
P Größe eines Directories ermitteln mit allen SubDIR`s Allgemeine Java-Themen 28
P Maximale Größe einer Klasse Allgemeine Java-Themen 9
G Image in der Größe ändern Allgemeine Java-Themen 2
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
R Größe der JRE anpassen Allgemeine Java-Themen 18
G http maximale transfer größe? Allgemeine Java-Themen 3
M Datein einlesen und in feste Größe aufsplitten Allgemeine Java-Themen 2
J Größe von 2D-Arrays Allgemeine Java-Themen 3
H Größe eines Bildes ändern und Bild speichern Allgemeine Java-Themen 11
E JPEG Datei Größe und Qualität ändern (für Thumbnails) Allgemeine Java-Themen 4
H Größe eines Schriftzeichens ermitteln Allgemeine Java-Themen 2
thE_29 Größe bzw. Zeilen einer Datei Allgemeine Java-Themen 4
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
D Swing MaskFormatter Maske Variabel anpassen Allgemeine Java-Themen 2
B Altes Applet anpassen Allgemeine Java-Themen 8
B Umgebungsvariable Anpassen der Umgebungsvariablen nach Java-Update ? Allgemeine Java-Themen 14
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
S JFrame an Fenstergröße anpassen Allgemeine Java-Themen 16
S Arraygröße anpassen Allgemeine Java-Themen 6
L Datentypen Datenmodell anpassen? Allgemeine Java-Themen 7
N Jlabel automatisch anpassen Allgemeine Java-Themen 3
H JDateChooser anpassen Allgemeine Java-Themen 4
F KeyEvents anpassen? Allgemeine Java-Themen 4
J Itext , Spaltenbreite automatisch anpassen ? Allgemeine Java-Themen 4
M JFrame anpassen Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben