核心图线性到对数切换

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 刻度类型旨在处理这种情况。请注意,在比例类型之间转换时,您可能还需要更新一些标签参数。默认情况下,对数刻度上的主要刻度线以十的幂分隔。根据绘图范围,对数刻度甚至可能无法覆盖一个主要刻度间隔。