繁体   English   中英

JFreeChart和Y轴单位

[英]JFreeChart and Y-axis Units

我有一个StackedXYAreaChart,如下所示:

在此输入图像描述

如何格式化Y轴单位,使它们均匀分布并以一定的间隔显示? 例如,我不想以1为增量显示单位(例如0, 1, 2, 3, ... 100 ),而是希望以10或25为增量显示单位(例如0, 25, 50, 75, 100 )。 谢谢!

我找到了解决自己问题的方法。 我正在使用CustomTickUnit来格式化数字并将单位添加到后缀中,例如1000000变为1 GB

我使用以下代码设置我的刻度单位,这些代码将它们均匀地隔开并适当地格式化它们以便它们非常易读:

public void setupRangeAxis(NumberAxis rangeAxis) {
  final TickUnits standardUnits = new TickUnits();
  standardUnits.add(new CustomTickUnit(1));
  standardUnits.add(new CustomTickUnit(10));
  standardUnits.add(new CustomTickUnit(100));
  standardUnits.add(new CustomTickUnit(1000)); // Kilo
  standardUnits.add(new CustomTickUnit(10000));
  standardUnits.add(new CustomTickUnit(100000));
  standardUnits.add(new CustomTickUnit(1000000)); // Mega
  standardUnits.add(new CustomTickUnit(10000000));
  standardUnits.add(new CustomTickUnit(100000000));
  standardUnits.add(new CustomTickUnit(1000000000)); // Giga
  standardUnits.add(new CustomTickUnit(10000000000L));
  standardUnits.add(new CustomTickUnit(100000000000L));
  standardUnits.add(new CustomTickUnit(1000000000000L)); // Tera
  standardUnits.add(new CustomTickUnit(10000000000000L));
  standardUnits.add(new CustomTickUnit(100000000000000L));
  standardUnits.add(new CustomTickUnit(1000000000000000L)); // Peta
  standardUnits.add(new CustomTickUnit(10000000000000000L));
  standardUnits.add(new CustomTickUnit(100000000000000000L));
  standardUnits.add(new CustomTickUnit(1000000000000000000L)); // Exa
  rangeAxis.setStandardTickUnits(standardUnits);
}
CategoryPlot plot = chart.getCategoryPlot();

NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();

rangeAxis.setTickUnit(new NumberTickUnit(300));

假设NumberAxis ,刻度单位设置为25。有一个相关的例子在这里

axis.setTickUnit(new NumberTickUnit(25));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM