SwiftNiceScale

生成“美观”的数字,用于在一定范围内标记刻度,例如图表上的 y 轴。

改编自 Andrew S. Glassner (1995) 在Graphics Gems, Volume 1 中的伪代码。另请参阅 Tufte 的The Visual Display of Quantitative Information(2001 年版第 149 页),了解有关此主题的讨论。

作为一个开源 Swift 库提供,可集成到其他应用程序中。

SwiftNiceScaleOpenAlloc 开源 Swift 软件工具家族的一部分。

NiceScale

let ns = NiceScale(105...543, desiredTicks: 5)!

print("nice range=\(ns.range)")

=> "nice range=100.0...600.0"

print("tick interval=\(ns.tickInterval)")

=> "tick interval=100.0"

print("labels=\(ns.tickValues)")

=> "labels=[100.0, 200.0, 300.0, 400.0, 500.0, 600.0]"

类型

ValueRange 类型在 NiceScale 中声明,其中 T 是您的 BinaryFloatingPoint 数据类型

typealias ValueRange = ClosedRange<T>

实例属性和方法

初始化器

如果提供的参数无意义,例如范围为零或期望的刻度数少于 2,则初始化将失败并返回 nil

初始化值也作为属性提供

实例属性

计算属性是惰性的,这意味着它们仅在首次需要时才会被计算。

基本属性集...

更多处理刻度正负部分的专用属性...

实例方法

另请参阅

此库是 OpenAlloc Project 的成员。

许可证

版权所有 2021, 2022 OpenAlloc LLC

根据 Apache License, Version 2.0(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获得许可证副本

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或以书面形式达成协议,否则根据本许可证分发的软件将按“原样”基础分发,不附带任何形式的明示或暗示的保证或条件。请参阅许可证,了解有关特定语言的管理权限和限制的规定。

贡献

也欢迎其他贡献。我们鼓励您提交拉取请求以修复错误、改进文档或提供新功能。

拉取请求不必是生产就绪的功能或修复。它可以是拟议更改的草案,或者仅仅是一个测试,以表明预期的行为是有缺陷的。关于拉取请求的讨论可以从那里开始。

贡献最终应具有足够的测试覆盖率。请参阅当前实体的测试,以了解预期的覆盖率。