我正在与library合作。有人知道是否可以在x轴上强制显示最小和最大标签。
我有什么:
我想要实现的目标:
我的实施:
private func prepareXAxis() {
lineChart.xAxis.labelPosition = .bottom
lineChart.xAxis.valueFormatter = ChartXAxisDateValueFormatter()
lineChart.xAxis.labelFont = UIFont.pmd_robotoRegular(ofSize: 13.0)
lineChart.xAxis.labelTextColor = UIColor.pmd_darkGrey
}
实现我自己的ValueFormatter
:
import Foundation
import Charts
class ChartXAxisDateValueFormatter: NSObject, IAxisValueFormatter {
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm\ndd MMM"
return dateFormatter.string(from: Date(timeIntervalSince1970: value))
}
}
我添加了此代码,但仍会跳过x轴上的第一个和最后一个标签:
lineChart.xAxis.axisMinimum = lineDataSet.xMin
lineChart.xAxis.axisMaximum = lineDataSet.xMax
lineChart.xAxis.avoidFirstLastClippingEnabled = false
lineChart.xAxis.granularity = 1.0
我检查了lineDataSet.xMin
和lineDataSet.xMax
。它们具有有效值。
答案 0 :(得分:1)
您需要设置以下属性,不要跳过第1个和最后一个值
//Set up XAxis into chart.
lineChart.xAxis.axisMinimum = 0
lineChart.xAxis.avoidFirstLastClippingEnabled = NO
lineChart.xAxis.granularity = 1.0
希望这会有所帮助。
答案 1 :(得分:0)
我找到了解决方案。丢失的路线:
combinedChart.xAxis.forceLabelsEnabled = true
我还将图表类型从LineChart
更改为CombinedChartView
。