1

我想使用 jfree 图表显示条形图。我能够在 y 轴上显示字符串数据,例如在 y 轴上显示 A 0、B 100,但条形显示很长。条形显示的格式不正确。如何在我的数据集中将 y 值编码为整数,而我仍然必须以该格式显示上面显示的字符串数据?

4

1 回答 1

3

每个SymbolAxis数字值都需要 a,因此您需要提供 101 个值(0 - 100)而不是代码中的 11

尝试更换

SymbolAxis rangeAxis=new SymbolAxis("", new String[] {"Poor    0", "10","20", "30", "40", "Avg.     50","60","70","80","90","Best   100"});
plot.setRangeAxis(rangeAxis);

//Provide a new Symbol Axis
String[] grade =  new String[101];
for (int i = 0 ; i < grade.length ; i ++){
    grade[i] = Integer.toString(i);
}
grade[0] = "Poor    0";
grade[100] = "Best   100";
grade[50] = "Avg.   50";
SymbolAxis rangeAxis = new SymbolAxis("", grade);
rangeAxis.setTickUnit(new NumberTickUnit(10));
rangeAxis.setAutoRange(false);
rangeAxis.setRange(0, 100);
plot.setRangeAxis(rangeAxis);

用于 SymbolAxis#setTickUnit()控制刻度线之间的间隔,您将获得一条图表线

在此处输入图像描述

于 2012-08-24T12:06:31.467 回答