Как показать значения рядов в линейной диаграмме.
Мой текущий код
public void renderChart(String variation, OutputStream stream) throws Exception {
boolean rotate = "rotate".equals(variation); // add ?variation=rotate to the URL to rotate the chart
JFreeChart chart = generateChart(rotate);
ChartUtilities.writeChartAsPNG(stream, chart, 750, 400);
}
private JFreeChart generateChart(boolean rotate) {
DefaultCategoryDataset data = ChartData.getDataset();
JFreeChart chart = ChartFactory.createLineChart("example graph", // title
"x-axis", // x-axis label
"y-axis", // y-axis label
data, rotate ? PlotOrientation.HORIZONTAL : PlotOrientation.VERTICAL, true, // legend displayed
true, // tooltips displayed
false); // no URLs*/
CategoryPlot plot = (CategoryPlot) chart.getPlot();
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
renderer.setShapesVisible(true);
DecimalFormat decimalformat1 = new DecimalFormat("##");
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", decimalformat1));
renderer.setItemLabelsVisible(true);
renderer.setSeriesVisible(true);
return chart;
}
кто-нибудь может рассказать, как показывать значения в этом
Чтобы запустить код, я сделал main
метод, и я сделал метод ChartData.getDataset()
который создает некоторые примеры данных. И ваш код работает нормально. Поэтому, я думаю, ваша проблема в том, что у вас не было этих двух методов, о которых я только что упомянул.
Здесь, как вы создаете простой тестовый набор данных:
class ChartData {
public static DefaultCategoryDataset getDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1, "Foo", "A");
dataset.addValue(10, "Foo", "B");
dataset.addValue(5, "Foo", "C");
dataset.addValue(2, "Bar", "A");
dataset.addValue(3, "Bar", "B");
dataset.addValue(8, "Bar", "C");
return dataset;
}
}
И здесь main
метод:
public class JFreeChartSnippet {
//// ////
// Copy your code from your question here //
//// ////
public static void main(String[] args) throws Exception {
new JFreeChartSnippet().renderChart("rotate", new FileOutputStream("foobar.png"));
}
}
Теперь вы должны увидеть некоторый вывод в файле foobar.png
: