iOS图表:如何根据条目数量正确缩放条形宽度?

时间:2017-08-06 09:46:07

标签: ios swift ios-charts

我目前正在使用iOS Charts库,我正在尝试使用BarChartView来缩放条的宽度,但是我很难确保宽度几乎保持不变,而不管图表中有多少条目。

根据此处提供的答案:Changing width of the bar in bar chart

其中一位开发人员表示,条形图的宽度会随着条目数量的增加而缩小。

我根据使用zoomMultiplier的条目数计算了一个我满意的缩放级别因子,如下所示:

func createBarChart(dataPoints: [Date], values: [Double])
{
    var dataEntries: [BarChartDataEntry] = []

    for index in 0..<dataPoints.count
    {
        let dataEntry = BarChartDataEntry(x: Double(index),
                                                  y: values[index])

        dataEntries.append(dataEntry)
    }

    barChartView.xAxis.valueFormatter = self

    barChartView.xAxis.granularity = 1

    barChartView.xAxis.setLabelCount(dataPoints.count, force: false)

    barChartView.animate(yAxisDuration: 1.0, easingOption: .easeInOutQuad)

    switch dataPoints.count
    {
        case 1...6:
            zoomXMultiplier = 0.0
            barWidthMultiplier = 0.3
            break

        default:
            zoomXMultiplier = CGFloat(dataPoints.count) * 0.168
            barWidthMultiplier = Double(dataPoints.count) * 0.0014 - Double(zoomXMultiplier) * 0.02
            break
    }

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "")
    let chartData = BarChartData(dataSet: chartDataSet)

    barChartView.data = chartData

    barChartView.zoom(scaleX: zoomXMultiplier, scaleY: 0.0, x: 0, y: 0)

    barChartView.barData?.barWidth = barWidthMultiplier
}

但是,我似乎无法使barWidthMultiplier恰到好处,条形宽度明显随着数据点条目数量的减少/增加而向下/向上缩放。

有人可以提供任何建议,以帮助我解决此问题吗?

谢谢!

0 个答案:

没有答案