Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Построение круговой диаграммы Java

#java


Пытаюсь построить круговую диаграмму на основе массива, которая будет отражать элемент,
и в зависимости сколько раз она повторяется какая-то часть диаграммы ему будет соответствовать.
Сделал все по классике: создал map, в него записываю элемент массива и количество повторений.
Столкнулся с проблемой вывода (см. рисунок). Проблема состоит в том что в массиве 1
встречается чаще, но на диаграмме ей соответствует меньшая область, чем например 5,
которая встречается всего 1 раз;

public class CreateChart extends JFrame{

    public CreateChart(String appTitle, String chartTitle)
    {
        PieDataset dataset = createDataset();
        JFreeChart chart = createChart(dataset,chartTitle);
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500,300));
        setContentPane(chartPanel);
    }


    private PieDataset createDataset()
    { int[] mas = {1,1,1,2,2,4,3,2,3,4,5};
      Map map = new HashMap();

     for(int i=0;i


Ответы

Ответ 1



Проверил все работает. result.setValue принимает в качестве второго аргумента тип double, поэтому разумнее пользоваться приведением типа к double(если версия Java 7 или выше) или Double. for (Map.Entry entry : map.entrySet()) { result.setValue(entry.getKey().toString(), (Double)entry.getValue()); }

Комментариев нет:

Отправить комментарий