Нужно поменять тип линии в JFreeChart

110
07 августа 2019, 12:30

Здравствуйте появилась проблема с поиском в документации информации :( А именно то, что я не нашел как поменять тип линии, ее цвет и как добавить подписи к точкам. Пример того как у меня, и как я хотел бы видеть приложу ниже, а так же код :

1) Скрин то как должно быть(в каждной точке X на графике дожно ставится значение Y)

2) То как оно выглядит сейчас

    XYSeries series = new XYSeries("  ");
    for(float i = 0; i < 16; i+=0.1){
        series.add(i, (2 * u) / q * Math.abs((sin(i * 3.14 / q)) / (i * 3.14 / q)));
    }
    XYDataset xyDataset = new XYSeriesCollection(series);
    JFreeChart chart = ChartFactory
            .createXYLineChart("График", "x", "y",
                    xyDataset,
                    PlotOrientation.VERTICAL,
                    true, true, true);
    JFrame frame =
            new JFrame("График");
    // Помещаем график на фрейм
    frame.getContentPane()
            .add(new ChartPanel(chart));
    frame.setSize(720,480);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.show();
Answer 1

И так, немного потратив время на изучение сорсов и форумов, я все-таки нашел ответы на свои вопросы.

1) Тип линии (мне нужна была штриховая линия) Я использовал библиотеку JFreeChart и что бы поменять тип линии используем клас XYLineAndShapeRenderer. И в нем есть метод setSeriesStroke. Пример того как у меня тут

            XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, false);
            renderer.setSeriesStroke(
                    0, new BasicStroke(
                            2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                            1.0f, new float[]{2.0f, 10.0f}, 0.0f
                    )
            );

2) Цвет линии Используем тот же XYLineAndShapeRenderer а именно эго метод SetPaint.

renderer.setPaint(Color.red);

3) Подписи к точкам Создаем екземпляр класа XYPlot. Для решение проблемы я использовал клас XYTextAnnotation, которому нужно передать (String text, double x, double y) (после этого используем метод addAnnotation XYPlot).

XYPlot plot = (XYPlot) chart.getPlot();
XYTextAnnotation textAnnotation = new 
XYTextAnnotation(String.valueOf("Подпись", Координата X, Координата Y);
plot.addAnnotation(textAnnotation);
READ ALSO
Добавить прокси к моему приложению на Android

Добавить прокси к моему приложению на Android

Я хочу узнать как правильно добавить прокси к моему приложениюТак получилось, что сайт, который я парсю попал в реестр РКН, мне нужен способ...

128
Постоянно соединение с сайтом

Постоянно соединение с сайтом

Допустим есть некий сайт, с которого я скачиваю много картинокПример сайта:

114
Диалоговые окна. Как получить данные от дочернего окна?

Диалоговые окна. Как получить данные от дочернего окна?

Можно ли создать создать в JavaFx диалоговое окно что бы при вызове метода showDialog() он возвращал не которые парамеры, как это происходит в Alert и он возвращает...

133