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