[英]iOS Charts: Combined data into stacked bar chart?
我剛開始使用iOS Charts庫,並且能夠制作條形圖,但是在理解如何“堆疊”包含相同x軸值的一組數據時遇到了麻煩。
這是我的條形圖當前的樣子:
和實現此目的的代碼:
extension MyViewController: IAxisValueFormatter
{
func stringForValue(_ value: Double, axis: AxisBase?) -> String
{
let record_ARRAY = record_ARRAY.sorted(by: {$0.date < $1.date})
let date = record_ARRAY[Int(value)].date
return ReusableClass.typeThreeDateFormat(date: date)
}
}
var chargeDates_ARRAY = [Date]()
var chargeCosts_ARRAY = [Double]()
override func viewDidLoad()
{
chargeDates_ARRAY = [2017-08-05 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-07 07:00:00 +0000]
chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004]
createBarChart(dataPoints: chargeDates_ARRAY, values: chargeCosts_ARRAY)
barChartView.delegate = self
}
func createBarChart(dataPoints: [Date], values: [Double])
{
var dataEntries: [BarChartDataEntry] = []
for index in 0..<dataPoints.count
{
let dataEntry = BarChartDataEntry(x: Double(index),
y: values[index])
dataEntries.append(dataEntry)
}
barChartView.xAxis.valueFormatter = self
barChartView.xAxis.granularity = 1
barChartView.xAxis.setLabelCount(dataPoints.count, force: false)
barChartView.animate(yAxisDuration: 1.0, easingOption: .easeInOutQuad)
let chartDataSet = BarChartDataSet(values: dataEntries, label: "")
let chartData = BarChartData(dataSet: chartDataSet)
barChartView.data = chartData
barChartView.zoom(scaleX: zoomXMultiplier, scaleY: 0.0, x: 0, y: 0)
barChartView.barData?.barWidth = barWidthMultiplier
}
我想做的是將包含2個相同x軸值08/06/17
的數據08/06/17
到一個堆疊的條中,並實現如下所示:
我試圖從問題中得到答案: Swift中帶有條形圖的堆積條形圖
但是我什么也沒辦法。
有人可以幫忙嗎? 謝謝!
嘗試將您的chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004]
為chargeCosts_ARRAY = [[8.0], [3.0, 5.6600000000000001], [4.4400000000000004]]
基本上,您試圖創建類型[[Double]]()
。 然后將BarChartDataEntry(x: Double(index), y: values[index])
更改為BarChartDataEntry(x: Double(index), yValues: values[index])
。 快樂的編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.