java - JFreeChart 和 Y 轴单位

标签 java jfreechart

我有一个如下所示的 StackedXYAreaChart:

enter image description here

如何设置 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);
}

关于java - JFreeChart 和 Y 轴单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7853145/

相关文章:

java - JfreeChart 在单击之前不显示

java - 试图禁用可聚焦,不工作,android

java - 如何在 main 中的可运行对象之外对 JFrame GUI 进行更改?

java - jackson 映射器错误

java - 一个窗口上的多个 JFreeCharts

java - 在 JFreeChart 中,什么是缠绕规则?

java - 如何仅更改移动平均曲线的颜色

java - javafx 和 jfreechart 哪个更适合制作图表

java - SWT DragSourceEvent 图像未正确锚定到鼠标指针

java - setText 导致应用程序崩溃