JFreeChart показать значения в линейном графике

1

Как показать значения рядов в линейной диаграмме.

Мой текущий код

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;
}

кто-нибудь может рассказать, как показывать значения в этом

  • 0
    У вас больше шансов получить помощь, если вы разместите полностью исполняемый пример своего кода.
Теги:
jfreechart

1 ответ

1

Чтобы запустить код, я сделал 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:

Изображение 174551

  • 0
    Спасибо за вашу помощь, но я все еще не могу понять, где проблема в моем коде.
  • 0
    Что если я хочу получить ось Y внизу фигуры?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню