#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}; Mapmap = 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()); }
Комментариев нет:
Отправить комментарий