我在iOS Swift的条形图上工作
代码:
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
问题
答案 0 :(得分:1)
试用此扩展程序: -
//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")
其中日期和潜在客户是字符串数组
答案 1 :(得分:0)
问题1的答案
由Mahajan Code先生和一些具有此功能的人组成:-
代码:
cell.barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:monthDateArray as! [String])
cell.barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)
cell.barChartView.xAxis.granularity = 1.0
cell.barChartView.setVisibleXRange(minXRange: 7, maxXRange: 7)
cell.barChartView.leftAxis.axisMinimum = 0
cell.barChartView.xAxis.granularityEnabled = true
cell.barChartView.xAxis.drawGridLinesEnabled = false
cell.barChartView.xAxis.labelPosition = .bottom
cell.barChartView.chartDescription?.text = ""
cell.barChartView.rightAxis.enabled = false
cell.barChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInOutQuart)
问题2的答案
代码:
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "dd"
let result = formatter.string(from: date)
var myDoubleX = Double(result)
myDoubleX = myDoubleX! - 1.5
cell.barChartView.moveViewToX(myDoubleX!)