从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).
有人遇到这个问题或有解决方法吗?
答案 0 :(得分:0)
比例类型.log
无法处理包含零(0)的绘图范围,因为log(0)
未定义。 .logModulus
标度类型旨在处理这种情况。请注意,在比例尺类型之间切换时,您可能还需要更新一些标签参数。默认情况下,对数刻度上的主要刻度线以10的幂分隔。根据绘图范围,对数刻度可能甚至不能覆盖一个主要的刻度间隔。