核心图线性到对数切换

时间:2019-06-25 21:52:15

标签: swift core-plot

xScaleType .linear切换到.log(或.logModulus)时出现问题。 以下代码使绘图在X方向上消失,即仍然可以看到Y轴及其刻度线,但是X轴消失了,并且在Y轴上看到一条数据线。仅当您平移到最左侧的X位置0时,才会发生此问题。如果不为零,则没有问题。

如果我以.log开头,那么一切都很好。我可以平移/缩放到位置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).

有人遇到这个问题或有解决方法吗?

1 个答案:

答案 0 :(得分:0)

比例类型.log无法处理包含零(0)的绘图范围,因为log(0)未定义。 .logModulus标度类型旨在处理这种情况。请注意,在比例尺类型之间切换时,您可能还需要更新一些标签参数。默认情况下,对数刻度上的主要刻度线以10的幂分隔。根据绘图范围,对数刻度可能甚至不能覆盖一个主要的刻度间隔。