JFreeChart定义域/值域坐标轴

8

有人能简单解释一下JFreeChart的轴类型吗?

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

  2. 我们还有“域轴”和“值轴”的区别(仅适用于xy图表?)。这与基于类层次结构的轴的关系并不完全清楚。它们不是类,但XYPlot中有setDomainAxis和setRangeAxis方法。

  3. 从视觉上看,我会想到水平和垂直轴,我不确定它们与前面的概念有什么关系(“域”总是水平的吗?)。我认为x轴是水平的,y轴是垂直的,但我不确定在XYPlot中是否始终如此。

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

编辑2:虽然这个问题没有得到回答,但我与此同时找到了决定域轴是否水平的方法:PlotOrientation设置。该设置(在组合图的级别上)还确定了CombinedRangeXYPlot / CombinedDomainXYPlot是水平排列还是垂直排列两个图形。


抱歉,这个问题过于宽泛,涉及到 API 并在开发者 指南 中有所阐述。附言:请编辑您的问题,将重点放在促使此次查询的问题上。 - trashgod
1个回答

11
XYPlot 中,每个显示的系列都代表着一个离散函数 f[t],具有一组离散的 {t1, t2, ..., tn} 和它们对应的值 {f[t1], f[t2], ..., f[tn]}
  • 函数的定义域包含了所有可能的 t 的值。
  • 函数的值域包含了所有可能的函数值 f[t]

重要的是,在函数中可能存在多个范围轴上相同值的点,但是函数的每个点在定义轴上必须具有唯一的值。例如:香蕉的价格可以与苹果相同,但香蕉的价格不能有两个(告诉那些经纪人!:P)。

通常情况下,水平轴是定义轴,但这也可以改变。

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

因此,总结一下:定义域和值域是数学定义,并对所显示的数据施加一些约束。这些术语用于一种特殊类型的数据(每个人在基础学校都学习的经典函数形式)。它们与其视觉表示无关。因此,绘图的范围轴和定义轴可以被定义为CategoryAxisNumberAxisLogarithmicAxis或其他类型。

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


1
谢谢!所以,您的意思是,定义域和值域轴之间的区别仅适用于XYPlots,实际上应该被命名为MathematicalFunctionPlot,因为它不能在系列中显示任意xy值?只要没有人反对您,我就接受这个答案... - lbalazscs
要查看差异,请在此示例上尝试PlotOrientation.HORIZONTAL - trashgod
@user1235867 这正是它的含义。正如trashgod所提到的,您可以更改绘图的方向(即定义哪个轴是域轴(每个值不能超过一个点))。从技术上讲,域/范围区分对于某些其他类型的绘图(例如CategoryPlot)也适用。 - brimborium

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接