2011-11-25 12 views
6

Jaki jest najlepszy sposób tworzenia atrakcyjnych wykresów w języku Java? Wygląda na to, że główną opcją do tworzenia wykresów jest JFreeChart, ale domyślnie niestety wyglądają całkiem zwyczajnie.Twórz stylowe wykresy w języku Java, np. Za pomocą JFreeChart

Porównaj próbkę JFreeChart: http://www.jfree.org/jfreechart/images/PriceVolumeDemo1.png z jednej z bibliotek wykresów JavaScript, np http://www.highcharts.com/demo/spline-symbols/grid lub http://people.iola.dk/olau/flot/examples/graph-types.html

Tych javascript wyglądają ładniej - mają gładkie linie, ładne czcionki domyślnie i tylko ogólny wygląd dobre w porównaniu do JFreeChart, który wygląda bardzo prosto.

Czy istnieje biblioteka wykresów zbudowana na JFreeChart, która domyślnie wygląda dobrze, czy może jakiś przykładowy kod, aby normalny wykres JFreeChart (np. Wykres liniowy) wyglądał świetnie?

Odpowiedz

3

http://www.jfree.org/jfreechart/samples.html

Można tam znaleźć wiele próbek (trzeba pobrać JFreeChart Demo (start web)). Po pracy z jFreeChart, myślałem o przejściu na EasyChart (wykonaj: http://www.objectplanet.com/easycharts/examples.html), ale w rzeczywistości wygląda bardzo podobnie do jFreeChart. JFreeChart jest dość łatwy do napisania, nie wiem o EasyChart.

Ale według twojego pytania, nie ma problemu, aby zmienić czcionkę, LineRenderer lub cokolwiek z desing w JFreeChart, więc możesz go zmodyfikować tak, aby wyglądał dokładnie tak, jak opublikowany z JavaScript.

+1

Przypuszczałem istnieje sposób, aby zmienić większość stylu niczym czcionek i linii renderowania - Chyba liczyłem na jakiś przykładowy kod z naprawdę świetny wygląd wykresów, aby zapisać mnie od konieczności bawić z to za dużo. Prezentowane wykresy w internetowej wersji demo JFreeChart są dobrym początkiem, ale powinny korzystać z zrzutów ekranowych tych na ich przykładowej stronie. – user1043466

+0

Zobacz także [odpowiedź] (http://stackoverflow.com/q/7323424/230513), a także ["org.jfree.chart.annotations"] (http://www.jfree.org/jfreechart/ api/javadoc/org/jfree/chart/adnotacje/package-summary.html). – trashgod

11

miałem ten sam problem.

Ten kod sprawia, że ​​JFreeChart wygląda jak Highcharts (obecnie obsługiwane są tylko barcharty). to może z łatwością być bardziej wydajny :)

String fontName = "Lucida Sans"; 
    JFreeChart chart = ChartFactory.createBarChart(null, "", "", dataset, PlotOrientation.VERTICAL, false, true, false); 

    StandardChartTheme theme = (StandardChartTheme)org.jfree.chart.StandardChartTheme.createJFreeTheme(); 

    theme.setTitlePaint(Color.decode("#4572a7")); 
    theme.setExtraLargeFont(new Font(fontName,Font.PLAIN, 16)); //title 
    theme.setLargeFont(new Font(fontName,Font.BOLD, 15)); //axis-title 
    theme.setRegularFont(new Font(fontName,Font.PLAIN, 11)); 
    theme.setRangeGridlinePaint(Color.decode("#C0C0C0")); 
    theme.setPlotBackgroundPaint(Color.white); 
    theme.setChartBackgroundPaint(Color.white); 
    theme.setGridBandPaint(Color.red); 
    theme.setAxisOffset(new RectangleInsets(0,0,0,0)); 
    theme.setBarPainter(new StandardBarPainter()); 
    theme.setAxisLabelPaint(Color.decode("#666666") ); 
    theme.apply(chart); 
    chart.getCategoryPlot().setOutlineVisible(false); 
    chart.getCategoryPlot().getRangeAxis().setAxisLineVisible(false); 
    chart.getCategoryPlot().getRangeAxis().setTickMarksVisible(false); 
    chart.getCategoryPlot().setRangeGridlineStroke(new BasicStroke()); 
    chart.getCategoryPlot().getRangeAxis().setTickLabelPaint(Color.decode("#666666")); 
    chart.getCategoryPlot().getDomainAxis().setTickLabelPaint(Color.decode("#666666")); 
    chart.setTextAntiAlias(true); 
    chart.setAntiAlias(true); 
    chart.getCategoryPlot().getRenderer().setSeriesPaint(0, Color.decode("#4572a7")); 
    BarRenderer rend = (BarRenderer) chart.getCategoryPlot().getRenderer(); 
    rend.setShadowVisible(true); 
    rend.setShadowXOffset(2); 
    rend.setShadowYOffset(0); 
    rend.setShadowPaint(Color.decode("#C0C0C0")); 
    rend.setMaximumBarWidth(0.1); 

enter image description here

9

Wypróbuj XChart. XChart to lekka biblioteka Java do tworzenia wykresów danych, która byłaby potencjalną alternatywą dla JFreeChart. Skupia się na prostocie i nie ma wszystkich możliwości, które ma JFreeChart, ale oferuje bogaty zestaw funkcji wykresów, w tym Motywy do stosowania różnych "skórek" do wykresu. Możesz łatwo stworzyć własny motyw, implementując interfejs i stosując go do wykresu, dzwoniąc pod numer chart.setTheme(myTheme). Słoik ma tylko ~ 86 KB od wersji 2.0.0 i nie ma żadnych zależności. Jest licencjonowany pod Apache 2.0 i jest hostowany pod numerem Github. Niektóre zrzuty ekranu można znaleźć here. Zastrzeżenie: Jestem głównym twórcą projektu.

enter image description here

+1

Naprawdę pod wrażeniem o Xchart. Gorąco polecam wszystkim, którzy potrzebują prostego narzędzia do tworzenia wykresów. Dziękujemy za Twoją pracę! – ruX

Powiązane problemy