IOS 条形图 - 如何在条形图上显示值(1.0、2.0 等)标签并在条形图滚动上显示特定值(如 3 - 7)

标签 ios swift bar-chart

我正在 iOS Swift 中制作条形图

chart chart

代码:

let chartDataSet: BarChartDataSet!
chartDataSet = BarChartDataSet(values: dataEntries, label: "Rupee  Date-->")
chartDataSet.colors = [AppColors.barChartColor]
chartDataSet.highlightColor = AppColors.barChartHighlightColor
chartDataSet.valueTextColor = UIColor.black
chartDataSet.values = dataEntries
let chartData = BarChartData(dataSet: chartDataSet)
chartData.setDrawValues(true)
cell.barChartView.drawValueAboveBarEnabled = true
cell.barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:monthDateArray as! [String])
cell.barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)
cell.barChartView.data = chartData
cell.barChartView.xAxis.granularity = 1.0
cell.barChartView.setVisibleXRange(minXRange: 7, maxXRange: 7)
cell.barChartView.leftAxis.axisMinimum = 0
cell.barChartView.drawValueAboveBarEnabled = true

问题

  1. 如何在条形上方显示值,例如 4.0、3.0 等。
  2. 柱线始终在 0 位置开盘。我希望该栏始终在当前日期位置打开,并且在滚动时我们可以显示所有数据。

最佳答案

尝试这个扩展:-

//Bar chart extensio to set custom xAxia and yAxis
extension BarChartView {

private class BarChartFormatter: NSObject, IAxisValueFormatter {

    var labels: [String] = []

    func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        return labels[Int(value)]
    }

    init(labels: [String]) {
        super.init()
        self.labels = labels
    }
}

func setBarChartData(xValues: [String], yValues: [String], label: String) {

    var dataEntries: [BarChartDataEntry] = []

    for i in 0..<yValues.count {
        let dataEntry = BarChartDataEntry(x: Double(i), y: Double(yValues[i])!)
        dataEntries.append(dataEntry)
    }

    let chartDataSet = BarChartDataSet(values: dataEntries, label: label)
    chartDataSet.colors = [NSUIColor(red: 0/255.0, green: 110/255.0, blue: 194/255.0, alpha: 1.0)]
    chartDataSet.valueFont = NSUIFont.systemFont(ofSize: 13)

    let chartData = BarChartData(dataSet: chartDataSet)
    let chartFormatter = BarChartFormatter(labels: xValues)
    let xAxis = XAxis()
    xAxis.valueFormatter = chartFormatter
    self.xAxis.valueFormatter = xAxis.valueFormatter
    self.drawValueAboveBarEnabled = true

    self.data = chartData
}
}

通话功能:-

@IBOutlet var chartView: BarChartView! 
...
chartView.setBarChartData(xValues: dates, yValues: Leads, label: "Leads")

其中日期和潜在客户是字符串数组

关于IOS 条形图 - 如何在条形图上显示值(1.0、2.0 等)标签并在条形图滚动上显示特定值(如 3 - 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290653/

相关文章:

asp.net - 通过asp.net Web服务将大数据发送到ios应用程序

ios - 如何快速使用 CoreData 信息对 UITableView 进行排序?

android - aChartEngine 中的逗号分隔符

ios - UITableView 中需要多次点击才能显示复选标记

ios - 随机调用不同 Action 的IBAction?

ios - 如何在 Xcode 5 中启用 iPhone6+ 屏幕分辨率

ios - 在 iMessage 应用程序的对话中存储变量

ios - 使用 NSURLSession 加载数据并关闭 iOS

Matplotlib 属性错误 : 'NoneType' object has no attribute 'seq'

java - 使用java根据月日动态绘制条形图