LineChartView one x axis label color is bold and dark.
jessjpj opened this issue · comments
Jeslin Johnson commented
- I've read, understood, and done my best to follow the *CONTRIBUTING guidelines.
What did you do?
`
private func configureChart() {
guard chartView.superview == nil else { return }
chartViewContainer.addSubview(chartView)
chartView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
chartView.legend.enabled = false
chartView.extraBottomOffset = 15
chartView.xAxis.axisLineColor = UIColor.palmDarkBlue.withAlphaComponent(0.2)
chartView.xAxis.labelPosition = .bottom
chartView.xAxis.labelTextColor = .palmGrayTransparent
chartView.xAxis.gridColor = UIColor.lightGray.withAlphaComponent(0.5)
chartView.xAxis.gridLineDashPhase = 2
chartView.xAxis.gridLineDashLengths = [5]
var entries = [Double]()
for balance in self.balances {
let date = DateFormatter.justDate.date(from: balance.date)
entries.append(Double(Date(year: date!.year , month: date!.month, day: 1).ordinality(of: .day, in: .year)!))
}
chartView.xAxis.centerAxisLabelsEnabled = true
chartView.xAxis.centeredEntries = entries.map { $0 + 15 }
chartView.xAxis.entries = entries
chartView.leftAxis.drawAxisLineEnabled = false
chartView.leftAxis.drawZeroLineEnabled = false
chartView.leftAxis.drawGridLinesEnabled = false
chartView.leftAxis.drawLabelsEnabled = false
chartView.rightAxis.drawAxisLineEnabled = false
chartView.rightAxis.drawZeroLineEnabled = false
chartView.rightAxis.drawGridLinesEnabled = false
chartView.rightAxis.drawLabelsEnabled = false
chartView.pinchZoomEnabled = false
chartView.doubleTapToZoomEnabled = false
chartView.dragEnabled = true
chartView.delegate = self
chartView.marker = CircularMarker(outerCircleSize: CGSize(width: 14, height: 14),
outerCircleColor: UIColor(hex: "#16CA9C")!.withAlphaComponent(0.3),
innerCircleSize: CGSize(width: 8, height: 8),
innerCircleColor: .white)
let monthFormatter = DateFormatter()
monthFormatter.dateFormat = "MMM"
if let start = DateFormatter.justDate.date(from: self.balances[0].date) {
xAxisFormatter = MonthValueFormatter({
if let value = Calendar.current.date(byAdding: .day, value: $0 - 1, to: start) {
let monthString = monthFormatter.string(from: value)
return monthString
} else {
return ""
}
})
chartView.xAxis.valueFormatter = xAxisFormatter
chartView.xAxisRenderer = CustomXAxisRenderer(viewPortHandler: chartView.xAxisRenderer.viewPortHandler,
axis: (chartView.xAxisRenderer.axis),
transformer: chartView.xAxisRenderer.transformer)
}
}
func populateChart() {
var day = 1
let selected = DateFormatter.justDate.string(from: selectedDate)
var beforeSelected = [ChartDataEntry]()
var afterSelected = [ChartDataEntry]()
for value in balances {
let entry = ChartDataEntry(x: Double(day), y: Double(value.balance))
if value.date <= selected {
beforeSelected.append(entry)
} else {
afterSelected.append(entry)
}
day += 1
}
func styleDataSet(_ dataSet: LineChartDataSet) {
dataSet.fillAlpha = 1
dataSet.drawFilledEnabled = true
dataSet.drawCirclesEnabled = false
dataSet.drawHorizontalHighlightIndicatorEnabled = false
dataSet.drawVerticalHighlightIndicatorEnabled = true
dataSet.highlightLineDashLengths = [4]
dataSet.drawValuesEnabled = false
}
let beforeDataSet = LineChartDataSet(entries: beforeSelected)
beforeDataSet.colors = [chartGreen]
let beforeGradient = CGGradient(colorsSpace: nil,
colors: [ UIColor(red: 0.086, green: 0.792, blue: 0.612, alpha: 0.5).cgColor,
UIColor(red: 0.086, green: 0.792, blue: 0.612, alpha: 0).cgColor] as CFArray,
locations: [1, 0])!
beforeDataSet.fill = LinearGradientFill(gradient: beforeGradient, angle: 90)
beforeDataSet.highlightColor = chartGreen
styleDataSet(beforeDataSet)
let afterDataSet = LineChartDataSet(entries: afterSelected)
afterDataSet.colors = [chartGray]
let afterGradient = CGGradient(colorsSpace: nil,
colors: [ UIColor(red: 0.831, green: 0.859, blue: 0.878, alpha: 0.3).cgColor,
UIColor(red: 0.745, green: 0.788, blue: 0.816, alpha: 0).cgColor ] as CFArray,
locations: [1, 0])!
afterDataSet.fill = LinearGradientFill(gradient: afterGradient, angle: 90)
afterDataSet.highlightColor = chartGray
styleDataSet(afterDataSet)
let chartData = LineChartData(dataSets: [beforeDataSet, afterDataSet])
self.chartView.data = chartData
if !beforeDataSet.isEmpty {//LineChartView
selectedIndex = beforeDataSet.count - 1
chartView.highlightValue(.init(x: beforeDataSet.last!.x, y: beforeDataSet.last!.y, dataSetIndex: 0))
}
}
What did you expect to happen?
ℹ All x axis labels should have same color.
What happened instead?
ℹ One x axis label is in different font.
DGCharts Environment
**DGCharts version/Branch/Commit Number:DGCharts/Core (5.0.0)
**Xcode version:15.0
**Swift version:Swift 5.0
**Platform(s) running DGCharts:iPhone
**macOS version running Xcode:NONE
Demo Project
ℹ Please link to or upload a project we can download that reproduces the issue.