ios - iOS Charts X Axis标签未全部显示

标签 ios charts swift3

我的应用程序管理一项具有四个季度周期的运动的得分。我的条形图将无法正确显示x轴标签。它仅显示Qtr 1和Qtr 3,而应显示每个条形对下的所有四个季度。
Screen shot of Bar Chart

    func setChart(dataPoints: [String], values1: [Double], values2: [Double]) {

    let legend = barChartView.legend
    legend.enabled = true
    legend.textColor = Style.labelTextColor

    let xaxis = barChartView.xAxis
    xaxis.drawGridLinesEnabled = true
    xaxis.labelPosition = .bottom
    xaxis.axisMinimum = 0
    xaxis.centerAxisLabelsEnabled = true
    xaxis.granularityEnabled = true
    xaxis.labelCount = 4
    xaxis.granularity = 2
    xaxis.labelTextColor = Style.labelTextColor

    let leftAxisFormatter = NumberFormatter()
    leftAxisFormatter.maximumFractionDigits = 1

    let yaxis = barChartView.leftAxis
    yaxis.spaceTop = 0.35
    yaxis.axisMinimum = 0
    yaxis.drawGridLinesEnabled = true
    yaxis.labelTextColor = Style.labelTextColor
    yaxis.gridColor = Style.labelTextColor
    yaxis.zeroLineColor = Style.labelTextColor
    yaxis.axisLineColor = Style.labelTextColor

    barChartView.rightAxis.enabled = false

    barChartView.noDataText = "You need to provide data for the chart."
    barChartView.chartDescription?.text = nil

    var dataEntries1: [BarChartDataEntry] = []; var dataEntries2: [BarChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry1 = BarChartDataEntry(x: Double(i), y: values1[i])
        dataEntries1.append(dataEntry1)

        let dataEntry2 = BarChartDataEntry(x: Double(i), y: values2[i])
        dataEntries2.append(dataEntry2)
    }

    let chartDataSet1 = BarChartDataSet(values: dataEntries1, label: gCurrentMatch.teamA)
    let chartDataSet2 = BarChartDataSet(values: dataEntries2, label: gCurrentMatch.teamB)
    chartDataSet1.colors = [Style.chartColorA]; chartDataSet1.valueColors = [Style.labelTextColor]
    chartDataSet2.colors = [Style.chartColorB]; chartDataSet2.valueColors = [Style.labelTextColor]

    let dataSets: [BarChartDataSet] = [chartDataSet1, chartDataSet2]
    let chartData = BarChartData(dataSets: dataSets)

    let groupSpace = 0.3
    let barSpace = 0.05
    let barWidth = 1.0
    // (0.3 + 0.05) * 2 + 0.3 = 1.00 -> interval per "group"

    let groupCount = self.qtr.count

    chartData.barWidth = barWidth
    let gg = chartData.groupWidth(groupSpace: groupSpace, barSpace: barSpace)

    barChartView.xAxis.axisMaximum = Double(0) + gg * Double(groupCount)
    barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: dataPoints)

    chartData.groupBars(fromX: Double(0), groupSpace: groupSpace, barSpace: barSpace)
    barChartView.notifyDataSetChanged()
    barChartView.data = chartData
    //chart animation
    barChartView.animate(yAxisDuration: 0.5, easingOption: .linear)

}

dataPoints是包含“Qtr 1”,“Qtr 2”等的字符串数组。

我无法弄清楚为什么它不起作用。

最佳答案

在xaxis格式中使用以下代码:

xaxis.setLabelCount(4, force: true)

关于ios - iOS Charts X Axis标签未全部显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44914636/

相关文章:

ios - 触摸文本框不起作用

ios - AVVideoComposition 在 iOS 8 中不起作用

iphone - CoreMotion - 磁场始终为 0

excel - 如何添加带有百分比的图表数据标签?

javascript - 如何使用谷歌图表在同一张图上绘制散点图和折线图

swift3 - Swift中previewLayer的AVCapture和缩放

ios - 如何添加联系人自定义应用程序帐户,如下图所示

ios - NSMutableData,处理接收到的数据然后从开始/重用缓冲区中删除?

ios - Storyboard无法打开

Python:使用图表创建 Excel 工作表