有人可以提供JFreeChart轴类型的简单解释吗?
首先,我们有基于类层次结构的轴(ValueAxis,CategoryAxis,许多子类)
我们还有“域轴”与“范围轴”的区别(仅适用于xy图?)。它们与基于类层次结构的轴的关系并不完全清楚。这些不是类,但在XYPlot中有setDomainAxis和setRangeAxis方法。
从视觉上我会想到在水平轴和垂直轴上,我不确定这些是如何与之前的概念相关的(“域”是否始终是水平的?)。我认为x轴是水平的,y轴是垂直的,但我不确定XYPlot是否总是如此。
编辑:我尝试研究API文档和开发人员指南。 API文档只是给出了类的层次结构,但不清楚何时以及如何使用它们。开发人员指南也没有给出“域轴”和“范围轴”的定义或解释,它只是使用这些术语。我承认问题很广泛,因为我无法在任何地方找到这些基本信息。我想要有一个大致的理解,但我现在最重要的问题是决定水平/垂直轴上的内容(“域”是否总是水平?如果不是如何设置它?)因为我得到一些疯狂的结果,我不知道从哪里开始调试。如果我想将两个图放在另一个上面,我是否应该使用CombinedRangeXYPlot或CombinedDomainXYPlot也不清楚。
EDIT2:虽然没有回答,但我在此期间发现了什么决定了域轴是否为水平:PlotOrientation设置。此设置(在组合图的级别上)还确定CombinedRangeXYPlot / CombinedDomainXYPlot是水平还是垂直排列两个图。
答案 0 :(得分:9)
在XYPlot
中,您展示的每个系列都代表一个离散函数f[t]
,其中包含一组离散的t {t1,t2,...,tn} 及其对应的值 {f [t1],f [t2],...,f [tn]} 。
t
的所有可能值。 f[t]
的所有可能值。 这里重要的是函数中可以有多个点,并且在范围轴中具有相同的值,但是函数的每个点都必须在域轴中具有唯一值。 例如:香蕉可以和苹果一样获奖,但香蕉不能有两个奖品(告诉经纪人!:P)。
通常,水平轴是域轴,但也可以更改。
然后你有了Axis
类,其中包含许多可能类型的视觉表示轴(对数/线性/类别/无标签/网格线/蓝色轴线... )。
总结:域和范围是数学定义,并对显示的数据构成一些约束。这些术语用于特殊类型的数据(每个人在基础学校学习的函数的经典形式)。它们与视觉表现无关。因此,绘图的范围和域轴可以定义为CategoryAxis
,NumberAxis
,LogarithmicAxis
或其他。
编辑(完整性):您可以使用PlotOrientation.VERTICAL
/ PlotOrientation.HORIZONTAL
更改绘图的方向(即定义,哪个轴是范围轴)。