Я использую библиотеку SwiftChart, но не могу отобразить значение бара в виде диаграммы.
Кто-нибудь может мне помочь?
// MARK: Variables
var barChart: BarsChart?
func updateCell(with arrDataSourceEnergyGraph: [EnergyGraph]) {
if arrDataSourceEnergyGraph.count > 0 {
if barChart != nil {
barChart!.view.removeFromSuperview()
}
let arrKilowatt = (arrDataSourceEnergyGraph.map {$0.kilowatt.doubleValue})
var chartSetting = ChartSettings()
chartSetting.top = 5
var from: Double = 0
var to: Double = 1
var by: Double = 0.5
if arrKilowatt.min() != arrKilowatt.max() {
from = arrKilowatt.min()!.rounded()
if arrKilowatt.max()!.rounded() == 0.0 {
if arrKilowatt.max()! < 0.5 {
to = arrKilowatt.max()! + arrKilowatt.max()!
by = ((from + to) / 6)
}else {
to = arrKilowatt.max()! + arrKilowatt.max()!
by = ((from + to) / 4)
}
}else {
to = arrKilowatt.max()!.rounded() + 2
by = ((from + to) / 4).rounded()
}
}
let chartAxisConfig = ChartAxisConfig(from: from, to: to, by: by)
let guidelinesConfig = GuidelinesConfig(dotted: false, lineWidth: 0.1, lineColor: UIColor.white)
let xAxisLabelSettings: ChartLabelSettings = ChartLabelSettings(font: UIFont(name: Constant.Font.Regular, size: 10.proportionalFontSize)!, fontColor: UIColor.black)
let yAxisLabelSettings: ChartLabelSettings = ChartLabelSettings()
let chartConfig = BarsChartConfig(chartSettings: chartSetting,
valsAxisConfig: chartAxisConfig,
xAxisLabelSettings: xAxisLabelSettings,
yAxisLabelSettings: yAxisLabelSettings,
guidelinesConfig: guidelinesConfig
)
var graphList: [(String, Double)] = []
for model in arrDataSourceEnergyGraph {
graphList.append((model.dayMonth, model.kilowatt.doubleValue))
print("chartValue", model.kilowatt.doubleValue)
}
let frame = CGRect(x: -15, y: 0, width: self.width + 5, height: self.height - 15)
barChart = BarsChart(
frame: frame,
chartConfig: chartConfig, xTitle: "", yTitle: "", bars: graphList,
color: UIColor.mOrangeColor(), barWidth: GET_PROPORTIONAL_WIDTH(20),
animDuration: 0.5
)
self.chartView.addSubview(barChart!.view)
guard let firstDate = arrDataSourceEnergyGraph.first?.dayAndMonth, let lastDate = arrDataSourceEnergyGraph.last?.dayAndMonth else { return }
self.labelDuration.text = "Energy Used (\(firstDate) to \(lastDate))"
}
}
Мой код показывает график правильно, но не показывает значение в верхней части бара.
Снимок экрана здесь