我有一个带有多个BarChartDataSet的水平图表(因为它们的BarChartDataEntry颜色不同),但是在将其添加到BarChartData之后,UI看起来很丑:(
所以问题是我如何配置BarChartDataSet的宽度?
我发现了两个属性barSpace和groupSpace,但不知道如何使用它们:)
这是代码
private func updateChartData () {
//days
let days = ["", "", "", "", "", "", ""]
var dataSets:[BarChartDataSet] = []
let valuesArr = [[2.0, 3.0, 4.0, 3.0, 2.0, 0.2, 0.7],
[3.0, 5.0, 3.6, 2.0, 1.0, 0.2, 0.7],
[1.0, 2.0, 6.0, 4.0, 1.5, 0.2, 0.7],
[4.0, 3.2, 4.4, 3.0, 2.0, 0.2, 0.7],
[0.0, 3.0, 4.0, 3.1, 2.2, 0.2, 0.7],
[0.8, 2.1, 4.3, 3.4, 2.0, 0.2, 0.7],
[2.9, 3.3, 4.6, 3.7, 2.8, 0.9, 0.7]]
for (index, values) in valuesArr.enumerate() {
let entry = BarChartDataEntry.init(values: values, xIndex: index)
let set = BarChartDataSet.init(yVals: [entry], label: nil)
// set.barSpace = 1
set.drawValuesEnabled = false
set.colors = [UIColor.clearColor(), UIColor.greenColor(), UIColor.blackColor(), UIColor.redColor()]
dataSets.append(set)
}
let data = BarChartData.init(xVals: days, dataSets: dataSets)
// data.groupSpace = 4
self.contentView.data = data
let rightAxis = self.contentView.rightAxis
rightAxis.enabled = true
rightAxis.labelFont = UIFont.systemFontOfSize(10)
rightAxis.drawAxisLineEnabled = true
rightAxis.drawGridLinesEnabled = true
rightAxis.axisMinValue = max(0.0, self.contentView.data!.yMin - 1.0)
rightAxis.axisMaxValue = min(23.0, self.contentView.data!.yMax + 1.0)
rightAxis.labelCount = Int(rightAxis.axisMaxValue - rightAxis.axisMinValue)
rightAxis.axisMinValue = 1.0
rightAxis.axisMaxValue = 23.0
}
以及运行后的外观
最佳答案
我相信可以通过更改barSpace
属性来实现。请注意,以百分比表示。如果条形图的整个空间为100%,则barSpace为0.25表示其中25%是空间,而75%是条形图。
关于ios - 如何设置BarChartDataSet宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37210582/