【问题标题】:JFreeChart domain/range axes defined定义的 JFreeChart 域/范围轴
【发布时间】:2012-08-07 19:38:56
【问题描述】:

有人可以简单解释一下 JFreeChart 轴类型吗?

  1. 首先,我们有基于类层次结构的轴(ValueAxis、CategoryAxis、许多子类)

  2. 我们还区分了“域轴”和“范围轴”(仅适用于 xy 图?)。尚不完全清楚这些与基于类层次结构的轴的关系。这些不是类,但在 XYPlot 中有 setDomainAxis 和 setRangeAxis 方法。

  3. 在视觉上,我会在水平轴和垂直轴上思考,我不确定这些与以前的概念有什么关系(“域”总是水平的吗?)。我认为x轴是水平的,y轴是垂直的,但我不确定XYPlot是否总是这样。

编辑:我尝试研究 API 文档和开发者指南。 API 文档只是给出了类的层次结构,但不清楚何时以及如何使用它们。开发者指南也没有给出“域轴”和“范围轴”的定义或解释,它只是使用这些术语。我承认这个问题很广泛,因为我在任何地方都找不到这个基本信息。我想有一个大致的了解,但目前我最重要的问题是什么决定了水平/垂直轴上的内容(“域”总是水平的吗?如果不是如何设置?)因为我得到了一些疯狂的结果,我不知道从哪里开始调试。如果我希望将两个图放在另一个之上,我是否应该使用 CombinedRangeXYPlot 或 CombinedDomainXYPlot 也不清楚。

EDIT2:虽然没有回答,但我同时发现了决定域轴是否水平的因素:PlotOrientation 设置。这个设置(在组合图的层面上)也决定了CombinedRangeXYPlot/CombinedDomainXYPlot是水平还是垂直排列两个图。

【问题讨论】:

  • 抱歉,这个问题过于宽泛,在API 中固有,在开发人员guide 中进行了说明。附录:请编辑您的问题,将重点放在提示此查询的问题上。

标签: java plot jfreechart axes


【解决方案1】:

XYPlot 中,您显示的每个系列都代表一个离散函数f[t],其中包含一组离散的 t {t1, t2, ..., tn} 及其对应的值{f[t1], f[t2], ..., f[tn]}.

  • 函数的保存t的所有可能值。
  • 函数的范围包含函数f[t]的所有可能值。

这里重要的是,函数中可以有多个点在范围轴上具有相同的值,但函数的每个点都必须在域轴上具有唯一的值。 例如: 香蕉可以与苹果有相同的奖品,但香蕉不能有两个奖品(告诉经纪人!:P)。

通常,横轴是域轴,但也可以更改。

然后你就有了 Axis 类,它包含许多可能的轴视觉表示类型(对数/线性/类别/无标签/网格线/蓝色轴线...) .

总而言之:域和范围是数学定义,对显示的数据有一些限制。这些术语用于一种特殊类型的数据(每个人都在基础学校学习的函数的经典形式)。它们与视觉表现无关。因此,可以将绘图的范围和域轴定义为 CategoryAxisNumberAxisLogarithmicAxis 或其他内容。

编辑(为了完整性):您可以使用PlotOrientation.VERTICAL/PlotOrientation.HORIZONTAL 更改绘图的方向(即定义哪个轴是范围轴)。

【讨论】:

  • 谢谢!因此,您是说域轴和范围轴之间的区别仅适用于 XYPlot,实际上应该将其命名为 MathematicalFunctionPlot,因为它不能显示系列中的任意 xy 值?只要没有人不同意你的观点,我就接受这个答案......
  • +1 要查看差异,请在此 minimal reproducible example() 上尝试 PlotOrientation.HORIZONTAL
  • @user1235867 就是这样。正如垃圾神所提到的,您可以更改绘图的方向(即定义,两个轴中的哪一个是域轴(每个值不能容纳超过一个点))。从技术上讲,域/范围区分也适用于一些其他类型的图(例如CategoryPlot)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多