swift - iOS 图表折线图缺少最后一个轴标签
问题描述
我用 iOS Charts pod 创建了一个折线图。
首先,我有一个名为 TestBalance 的自定义对象数组,其中包含一个 dateString(转换为 Date)和一个金额(Double)。目前,我已经创建了一个像这样的硬编码数组。
let balanceTestArray : [TestBalance] = [TestBalance(dateString: "01/01/2019", amount: 1920.24), //More elements... , TestBalance(dateString: "28/01/2019", amount: 844.24)]
然后我继续为图形数据创建 ChartDataEntry 数组。
let now = Date().timeIntervalSince1970
let dayInterval: TimeInterval = 3600 * 24
guard let firstDate = balanceTestArray.first else {return}
guard let lastDate = balanceTestArray.last else {return}
guard let firstDateDateValue = firstDate.date else {
print("No Date")
return
}
guard let lastDateDateValue = lastDate.date else {
print("No Date")
return
}
let from = firstDateDateValue.timeIntervalSince1970
let to = lastDateDateValue.timeIntervalSince1970 + dayInterval
var counter = 0
let values = stride(from: from, to: to, by: dayInterval).map { (x) -> ChartDataEntry in
let y = balanceTestArray[counter].amount
counter += 1
return ChartDataEntry(x: x, y: Double(y))
}
上面的代码似乎工作得很好,像这样绘制所有点和轴标签......
我已经通过以下方式设置了我的 xAxis:
let xAxis = lineChartView.xAxis
xAxis.labelPosition = .bottom
xAxis.labelFont = UIFont(name: "Montserrat-Regular", size: 10)!
xAxis.labelTextColor = UIColor(hex: "#A2A2A2FF")!
xAxis.drawAxisLineEnabled = false
xAxis.drawGridLinesEnabled = false
xAxis.granularity = 1.0
xAxis.centerAxisLabelsEnabled = false
xAxis.avoidFirstLastClippingEnabled = true
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE dd"
let xValuesNumberFormatter = ChartXAxisFormatter()
xValuesNumberFormatter.dateFormatter = dateFormatter
xAxis.valueFormatter = xValuesNumberFormatter
这就是我的两个主要问题开始显现的地方。
- 第一个问题是轴的标签与数据不匹配,间距对我来说似乎不对?这是放大到数据开头的图片。如何修复间距以最大化数据?我不希望每个值有超过 1 天的标签,而放大时有 2 个当前标签。有什么解决方案吗?
- 第二个问题是,在图表的右侧最后一个日期,在这种情况下,1 月 28 日没有显示为标签,但数据显示?如何让标签出现?
解决方案
推荐阅读
- flutter - 如何在 listview.builder 中管理 listtiles 的选定变量
- apache-spark - apache spark 3.0.1 是导致 CVE-2020-27216 的易受攻击的原因吗?
- python - 将日期转换为固定格式python
- php - Postman akamai edge-grid 代码在 php 中不起作用
- c++ - C++ 错误:“<<”标记之前的预期主表达式
- python - 对于 Pandas,.loc 和 no loc 有什么区别
- javascript - 如何使用纯 javascript/jquery 将对象呈现为 html
- webpack - Webpack 加载器和插件之间的通信
- python - 如何使用python找到轨迹中最平滑的部分?
- mongodb - 数组数组上的MongoDB聚合查询项目