我想使用jfree图表显示条形图。我能够在y轴上显示字符串数据 像y轴上的A 0,B 100但是条形显示很长。条形图没有以适当的格式显示。 如何在我的数据集中将y值编码为整数,同时仍然必须以该格式显示上面显示的字符串数据?
答案 0 :(得分: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()
来控制刻度线之间的间隔,然后你就可以得到一个图表线