Создание стильных диаграмм в Java, например, с JFreeChart
каков наилучший способ создания великолепных диаграмм на Java? Похоже, что основным вариантом для построения графиков является JFreeChart, но, к сожалению, по умолчанию они выглядят довольно просто.
сравните образец JFreeChart:http://www.jfree.org/jfreechart/images/PriceVolumeDemo1.png с одной из библиотек диаграмм Javascript, например http://www.highcharts.com/demo/spline-symbols/grid или http://people.iola.dk/olau/flot/examples/graph-types.html
javascript выглядят лучше - у них гладкие линии, хороший шрифт по умолчанию и просто в целом выглядят хорошо по сравнению с JFreeChart, который выглядит очень просто.
есть ли библиотека диаграмм, построенная поверх JFreeChart, которая выглядит хорошо по умолчанию, или, может быть, какой-то пример кода, чтобы сделать нормальную диаграмму JFreeChart (например, линейную диаграмму) отличной?
4 ответов
http://www.jfree.org/jfreechart/samples.html
там вы можете найти много образцов (вам нужно загрузить демо-версию JFreeChart (web start)). После некоторой работы с jFreeChart я думал о переезде в EasyChart (следуйте:http://www.objectplanet.com/easycharts/examples.html), но на самом деле он очень похож на jFreeChart. JFreeChart довольно легко написать, что я не знаю о EasyChart.
но согласно вашему вопросу, нет проблем с изменением шрифта, LineRenderer или чего-либо из desing в JFreeChart, поэтому вы можете изменить его, чтобы он выглядел точно так же, как тот, который вы опубликовали из JavaScript.
У меня была та же проблема.
этот код делает JFreeChart похожим на Highcharts (в настоящее время поддерживаются только barcharts). Это может быть легко сделать более эффективным:)
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);
попробовать XChart. XChart-это легкая Java-библиотека для построения графиков данных, которая будет потенциальной альтернативой JFreeChart. Его внимание сосредоточено на простоте и не имеет всех возможностей, которые есть у JFreeChart, но он предлагает богатый набор функций построения графиков, включая темы для применения различных "скинов" к диаграмме. Вы можете легко создать свою собственную тему, реализовав интерфейс и применив его к диаграмме, позвонив chart.setTheme(myTheme)
. Банку только ~86 Кбайт в версии 2.0.0 , и у него нет зависимостей. Он лицензирован под Apache 2.0 и размещен на Github. Некоторые скриншоты можно найти здесь. Отказ от ответственности: я ведущий девлопер проекта.