1.概述

在本教程中,我们将学习如何在图表中自动布局网格线间隔。

2.放置网格线间距

在我们的文章中选择一个线性比例y设在,我们讨论了如何确定蜱虫在一个轴上的位置折线图相反,在本教程中,我们分析一个相关的算法,它更适合确定a的网格线的间隔条形图

我们首先从一个代表a的图表开始分布.例如,一张包含10个独立的每日价格的图表股票

呈现由QuickLaTeX.com

然后,我们要确定标记的正确数量和位置y设在。我们的目标是确定刻度之间的正确间距,这将让我们理解观测值之间的相对位置。

3.为了避免错误

因此,分布的范围是我们所拥有的最重要的约束条件。在其中,我们希望用网格线或多或少地覆盖整个图表。然而,我们还希望在放置网格线时避免两个常见错误

首先是行太少的位置在分布范围内,因为这不利于理解:

呈现由QuickLaTeX.com

第二个是放置过多的行数.这实际上会导致刻度之间重叠的风险,而且还会让图像充满不必要的网格线:

呈现由QuickLaTeX.com

4.中间道路通向理解

相反,我们希望网格线足够覆盖图表,但也要在其中留出足够的空间让我们同时看到刻度和变量的值。如果我们处理得当,我们会得到一个有见地但也足够空洞的图表:

呈现由QuickLaTeX.com

5.什么数字是好的?

现在要做的是确定哪些数字是网格线的好刻度,哪些数字不是。

有一个分支教育学数学,图形致力于研究通过视觉理解数学的机制。多亏了这些学科,我们可以先验地确定两者之间的理想交互作用数字、语义学和人的思维,从而使读者得到最大程度的理解

例如,我们知道,任何数量级的1、2和5的倍数对大多数读者来说都更可取。例如,我们可以看到左边列的数字比右边列的数字看起来更好:

呈现由QuickLaTeX.com

我们还知道,无论规模如何,这种考虑都是有效的:

呈现由QuickLaTeX.com

这意味着有无标度的方法来识别好的数字.这是很重要的,因为如果我们在一个预定的区间内确定一个漂亮的数字列表,我们就可以根据需要对其进行放大或缩小。例如,如果我们同意区间内的一系列好数字(1, 10),同一列表将在间隔内有效(10 ^ x 10 ^ {x + 1}),只要乘以10 ^ x

6.该算法

因此,我们可以定义一种算法来识别对应于良好间隔的网格线的刻度范围。该算法将由用户定义的或由我们参数化的分布范围和最大节拍数作为输入。在终止时,它返回与网格线之间的间隔相对应的刻度列表

在这个特定的实现中,该算法需要单独存储未缩放的节拍列表。或者,我们可以使用查找表中选定的值乘以大小作为刻度之间的间隔.在本例中,我们从分布的下界开始,在每个间隔处放置刻度。

作为查找表,我们可以定义我们自己的任何表,只要它在区间内(1, 10)1和10都存在。公共表是包含元素的表[1, 2, 2.5, 3, 5, 7, 7.5, 10],但任何其他的都可以用来代替。

7.结论

在本文中,我们研究了一种在条形图上放置漂亮网格线的算法。

这篇文章的评论已经关闭!