jfreechart坐标上label过多时显示成点的解决方法
2009-11-05 10:09
435 查看
我用的是jfreechart1.09版本的,网上找了很久,同时也看了半天的API,都没找到哪个参数可以设置坐标轴上数据显示间隔的
例如,横坐标上的数据为10个
2000年 2001年 2002年 ... 2009年
但是我只想显示 2000年 2003年 2006年 2009年
于是开始看jfreechart源码,其实很简单
修改org.jfree.chart.axis.CategoryAxis
添加属性
...
/** add by winston 20091008 to settle the axis label too much problem */
private int tickLabelAlter = 1;
public int getTickLabelAlter() {
return tickLabelAlter;
}
public void setTickLabelAlter(int tickLabelAlter) {
this.tickLabelAlter = tickLabelAlter;
}
...
修改方法
protected AxisState drawCategoryLabels()
...
while (iterator.hasNext()) {
CategoryTick tick = (CategoryTick) iterator.next();
//add by winston 20091008 to settle the axis label too much problem
if(categoryIndex % this.tickLabelAlter != 0){
categoryIndex ++;
continue;
}
g2.setFont(getTickLabelFont(tick.getCategory()));
...
显示时只需要修改tickLabelAlter属性,就可以间隔显示
呵呵,水平有限!加上项目急用,只是做了简单的测试,没经过大量测试,可能会引起bug,欢迎大家测试
例如,横坐标上的数据为10个
2000年 2001年 2002年 ... 2009年
但是我只想显示 2000年 2003年 2006年 2009年
于是开始看jfreechart源码,其实很简单
修改org.jfree.chart.axis.CategoryAxis
添加属性
...
/** add by winston 20091008 to settle the axis label too much problem */
private int tickLabelAlter = 1;
public int getTickLabelAlter() {
return tickLabelAlter;
}
public void setTickLabelAlter(int tickLabelAlter) {
this.tickLabelAlter = tickLabelAlter;
}
...
修改方法
protected AxisState drawCategoryLabels()
...
while (iterator.hasNext()) {
CategoryTick tick = (CategoryTick) iterator.next();
//add by winston 20091008 to settle the axis label too much problem
if(categoryIndex % this.tickLabelAlter != 0){
categoryIndex ++;
continue;
}
g2.setFont(getTickLabelFont(tick.getCategory()));
...
显示时只需要修改tickLabelAlter属性,就可以间隔显示
呵呵,水平有限!加上项目急用,只是做了简单的测试,没经过大量测试,可能会引起bug,欢迎大家测试
相关文章推荐
- 织梦自定义字段【option下拉框】【radio选项卡】【Checkbox多选框】默认值过多无法显示解决方法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- C#中label内容显示不全、不完整的解决方法
- UIComponent.addChild(Label)无法显示Label的解决方法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 子表显示到第二页,造成第一页留白过多的解决方法
- 【FusionChart 】当纵坐标值全为0,FusionChart 显示 NaN 的解决方法
- JFreechart中文在AIX下显示方框解决方法
- ArcEngine开发中Label无法显示小数点前0的问题解决方法
- 解决struts中无法显示label的方法
- jfreechart linux图片中文显示乱码解决方法
- struts2标签不显示Label的解决方法
- jfreechart linux图片中文显示乱码解决方法
- 当纵坐标值全为0,FusionChart 显示 NaN 的解决方法
- struts2标签不显示Label的解决方法
- IOS8 UITableViewCell.detailTextLabel不显示解决方法
- jfreechart linux图片中文显示乱码解决方法
- 【引用】struts2标签不显示Label的解决方法
- TK模块写图形界面中文显示乱码的解决方法。