核心图线性到对数切换
Core Plot Linear to Logarithmic toggle
从 xScaleType
.linear
切换到 .log
(或 .logModulus
)时出现问题。
以下代码导致绘图在 X 方向消失,即仍然可以看到 Y 轴及其刻度,但 X 轴消失并且在 Y 轴上看到一条数据线。仅当平移到最左侧的 X 位置 0 时才会出现此问题。如果不在零则没有问题。
如果我从 .log
类型开始,那么一切都很好。我可以 pan/zoom 到位置 0 没有问题,如果以前设置为 .linear
,就会出现问题。
重现代码:
// Set as linear
let plotSpace = ((hostView.hostedGraph as? CPTXYGraph)?.defaultPlotSpace as? CPTXYPlotSpace)
plotSpace?.xScaleType = .linear
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()
// Some UI user interaction to trigger next code
// Set as log (or logModulus)
plotSpace?.xScaleType = .log
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()
// Pan to location 0(if not already there).
有没有人遇到过这个问题或有解决方法?
比例类型 .log
无法处理包含零 (0) 的绘图范围,因为 log(0)
未定义。 .logModulus
刻度类型旨在处理这种情况。请注意,在比例类型之间转换时,您可能还需要更新一些标签参数。默认情况下,对数刻度上的主要刻度线以十的幂分隔。根据绘图范围,对数刻度甚至可能无法覆盖一个主要刻度间隔。
从 xScaleType
.linear
切换到 .log
(或 .logModulus
)时出现问题。
以下代码导致绘图在 X 方向消失,即仍然可以看到 Y 轴及其刻度,但 X 轴消失并且在 Y 轴上看到一条数据线。仅当平移到最左侧的 X 位置 0 时才会出现此问题。如果不在零则没有问题。
如果我从 .log
类型开始,那么一切都很好。我可以 pan/zoom 到位置 0 没有问题,如果以前设置为 .linear
,就会出现问题。
重现代码:
// Set as linear
let plotSpace = ((hostView.hostedGraph as? CPTXYGraph)?.defaultPlotSpace as? CPTXYPlotSpace)
plotSpace?.xScaleType = .linear
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()
// Some UI user interaction to trigger next code
// Set as log (or logModulus)
plotSpace?.xScaleType = .log
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()
// Pan to location 0(if not already there).
有没有人遇到过这个问题或有解决方法?
比例类型 .log
无法处理包含零 (0) 的绘图范围,因为 log(0)
未定义。 .logModulus
刻度类型旨在处理这种情况。请注意,在比例类型之间转换时,您可能还需要更新一些标签参数。默认情况下,对数刻度上的主要刻度线以十的幂分隔。根据绘图范围,对数刻度甚至可能无法覆盖一个主要刻度间隔。