CorePlot 条形图在绘图和绘图上的混淆

CorePlot Bar Chart confusion on plots and drawing

我正在尝试使用条形图来显示我的数据。我想显示按日期分组的内容,每个日期我有 7 个人及其相关值。

我为每个日期创建了一个管状 CPTBarPlot,barWidth 为 0.25

我对为每个图设置 barOffset 的内容感到困惑,以便正确绘制。

为了数据的存储,我使用了var plotData: [NSDate : [Double]]?。对于每个 NSDate,double 数组恰好有 7 个值(每个人一个,按顺序)

我使用的 numberForPlot 方法正在绘制所有值,但分组似乎是按人而非日期进行的,并且它们相互绘制。这是我用的:

func numberForPlot(plot: CPTPlot, field fieldEnum: UInt, recordIndex idx: UInt) -> AnyObject? {
    guard let type = CPTBarPlotField(rawValue: Int(fieldEnum)) else { return nil }

    switch type {
    case .BarBase:
        fatalError()

    case .BarLocation:
        return idx

    case .BarTip:
        guard let date = plot.identifier as? NSDate, values = plotData?[date] else {
            fatalError()
        }

        return values[Int(idx)]
    }
}

每个地块的条形宽度为 0.25 个单位,间距为 1 个单位。由于您有七个地块,除非您减小条形宽度,否则它们将重叠。我建议使用 -0.3、-0.2、-0.1、0.0、0.1、0.2 和 0.3 的偏移量。这将在各组条形图之间留下一个小的 space 以将组分开。如果您不希望任何重叠,请在每个图上使用 0.1 的条宽。