рдореЗрд░реЗ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рддреЛ рдореИрдВ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЛ рдмреАрдЪ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ:
рдпрджрд┐ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХреНрд╕-рдПрдХреНрд╕рд┐рд╕ рдкрд░ рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ рейреж рджрд┐рдиреЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓, реирел рджрд┐рд╕рдВрдмрд░ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореЗрд░рд╛ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рд╣рдореЗрд╢рд╛ рдПрдХреНрд╕-рдПрдХреНрд╕рд┐рд╕ рдкрд░ рдкрд╣рд▓рд╛ рдФрд░ рдЖрдЦрд┐рд░реА рд▓реЗрдмрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореБрдЭреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдмреАрдЪ рдореЗрдВ рд▓реЗрдмрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
avoidFirstLastClippingEnabled
, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧрд▓рдд рд╣реИред
/// if set to true, the chart will avoid that the first and last label entry in the chart "clip" off the edge of the chart
open var avoidFirstLastClippingEnabled = false
@ cnowak7 рдХреНрдпрд╛ рдЖрдк рджреВрд╕рд░реА рдЫрд╡рд┐ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ? рдХреГрдкрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ
avoidFirstLastClippingEnabled
рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЦрд┐рд░реА рд▓реЗрдмрд▓ рд╣рдореЗрд╢рд╛ рдХрдЯ рдЬрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдЕрдХреНрд╖ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ AxisRendererBase.computeAxisValues
рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдереАред
https://github.com/danielgindi/Charts/issues/2007 рдЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИ?
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ @ondrejhanslik , computeAxisValues тАЛтАЛ() рд░реЗрдВрдЬ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рд▓реЗрдЧрд╛ред рддреЛ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рдиреНрдпреВрдирддрдо / рдЕрдзрд┐рдХрддрдо рдорд╛рди рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЬрд╛рдВрдЪрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдорд╛рди рдХреНрдпрд╛ рд╣реИ рдХрдВрдкреНрдпреВрдЯрдПрдХреНрд╕рд┐рд╕рд╡реИрд▓реНрдпреВрдЬ() рдореЗрдВ, рдФрд░ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ?
@ liuxuan30 рдореИрдВ рдХрд╕реНрдЯрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХреНрд╕-рдПрдХреНрд╕рд┐рд╕ рдорд╛рди рдпрд╛рдиреА рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ
рдпрд╣рд╛рдБ рдореЗрд░реЗ рдЪрд╛рд░реНрдЯ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ
avoidFirstLastClippingEnabled
рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдореЗрд░рд╛ рдЪрд╛рд░реНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ:
рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЕрдкрдирд╛ рдПрдХреНрд╕-рдПрдХреНрд╕рд┐рд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
private func setUpLineChartPreferences() {
.
.
.
// x-axis
self.lineChart.xAxis.labelPosition = .bottom
self.lineChart.xAxis.drawGridLinesEnabled = true
self.lineChart.xAxis.granularity = 1.0
.
.
.
}
private func setUpLineChart(withDataEntries entries: [ChartDataEntry]) {
let entryCount = entries.count
if entryCount > 0 {
let dataSet = LineChartDataSet(values: entries, label: nil)
dataSet.drawFilledEnabled = true
dataSet.fillColor = .green
dataSet.circleRadius = 5
dataSet.drawValuesEnabled = false
dataSet.setColor(.black)
dataSet.highlightColor = .green
dataSet.setCircleColor(.blue)
let lineChartData = LineChartData(dataSet: dataSet)
self.lineChart.data = lineChartData
// SET UP X-AXIS
self.lineChart.xAxis.valueFormatter = IndexAxisValueFormatter(values: self.chartLabels)
self.lineChart.xAxis.avoidFirstLastClippingEnabled = true
print("NOWAK: CHART LABELS THO - \(self.chartLabels)")
if entryCount == 1 {
self.lineChart.xAxis.axisMinimum = -1.0
self.lineChart.xAxis.axisMaximum = 1.0
} else {
self.lineChart.xAxis.axisMinimum = 0.0
self.lineChart.xAxis.axisMaximum = Double(self.chartLabels.count - 1)
}
print("X MIN IS \(self.lineChart.xAxis.axisMinimum) AND X MAX IS \(self.lineChart.xAxis.axisMaximum)")
} else {
self.lineChart.noDataText = "No Stats For The Past \(self.currentFilter.capitalized)"
self.lineChart.setNeedsDisplay()
}
switch self.currentFilter {
case "week":
self.weekFilterButton.backgroundColor = .blue
self.monthFilterButton.backgroundColor = .darkGray
self.yearFilterButton.backgroundColor = .darkGray
case "month":
self.monthFilterButton.backgroundColor = .blue
self.weekFilterButton.backgroundColor = .darkGray
self.yearFilterButton.backgroundColor = .darkGray
case "year":
self.yearFilterButton.backgroundColor = .blue
self.weekFilterButton.backgroundColor = .darkGray
self.monthFilterButton.backgroundColor = .darkGray
default:
print("ERROR SETTING FILTER BUTTON BACKGROUND COLORS")
}
self.stopLoading()
}
рдореИрдВ рд╡реИрд╕реЗ рдЪрд╛рд░реНрдЯ 3.0.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ :)
рдореБрдЭреЗ рднреАред рдЪрд╛рд░реНрдЯ 3.0.1 , XCode 8.0 рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ 3.0
рдпрджрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЬреЛ рд╢рд╛рдпрдж рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрдм рдЪрд╛рд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдорд╛рди (рдЖрдЬ) рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ "рдмреИрд▓реВрдирдорд╛рд░реНрдХрд░" рдЯреЗрдХреНрд╕реНрдЯ "рджрд┐рд╕рдВрдмрд░" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗ рдПрдХреНрд╕рдПрдХреНрд╕\n500"ред
рдореЗрд░реА рддрд░рдл рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ :)
рдареАрдХ рд╣реИ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪреЗрдХ рдХрд┐рдпрд╛ред
рдЪрд╛рд░реНрдЯ 3.0 рдореЗрдВ, x рдЕрдХреНрд╖ y рдЕрдХреНрд╖ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдкрдиреЗ y рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдмрдбрд╝реА y рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдбреЗрдЯрд╛ рдХреЗ рдЕрдзрд┐рдХрддрдо рдорд╛рди рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ,
computeAxisValues()
, рдпрд╣ рдЕрдХреНрд╖ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдорд╛рди (рдЬреЛ рдбреЗрдЯрд╛ рдХрд╛ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдорд╛рди рд╣реИ) рд╕реЗ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдПрдХреНрд╕ рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░рд╛рд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЯрдбреЗрдореЛ - рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдбреБрдЕрд▓ YAxis рдореЗрдВ, рдпрджрд┐ рдореЗрд░реЗ x рдорд╛рди 0 рд╕реЗ 20 рддрдХ рд╣реИрдВ,
computeAxisValues()
рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ 0, 20 рд▓реЗрддрд╛ рд╣реИ, рдлрд┐рд░, рдореЗрд░рд╛ labelCount
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 6 рд╣реИ, рдпрд╣ rawInterval = (max - min) / labelCount
рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛, рдФрд░ рдмрд╛рдж рдореЗрдВ рдЕрдВрддрд┐рдо рдЕрдВрддрд░рд╛рд▓ 3 рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдпрд╣ 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, 7 (рд▓реЗрдмрд▓рдХрд╛рдЙрдВрдЯ + 1) рд▓реЗрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ 0,3,6,9,12,15,18 рд╣реИрдВред рдЕрдВрддрд┐рдо рдПрдХреНрд╕ рдЕрдХреНрд╖ рд▓реЗрдмрд▓ 18 рд╣реИ, 20 рдирд╣реАрдВред
рдХрд╛рд░рдг isAvoidFirstLastClippingEnabled
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓ рдмрд╛рдзреНрдп рд╣реЛрдиреЗ рдкрд░ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред
рдпрджрд┐ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдмрд▓ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдХрд╛ x рдорд╛рди рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд▓реЗрдмрд▓ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП computeAxisValues()
рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рд╡рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ computeAxisValues()
рджреЗрдЦреЗрдВ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
@danielgindi рдРрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?
@ liuxuan30 рд╣рдо рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдмрд▓ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП computeAxisValues
рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВ рддрд┐рдерд┐рдпреЛрдВ рдкрд░ рдПрдХ рдЪрд╛рд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП x-рдорд╛рди рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рди рд╣реИрдВ, рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рджрд┐рди рдпрд╛ рдПрдХ рд╡рд░реНрд╖ рдХреЗ рдорд╣реАрдиреЗ рд╣реИрдВ), рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рд▓реЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЛрдорд╡рд╛рд░ рдФрд░ рд░рд╡рд┐рд╡рд╛рд░ рдпрд╛ 1 /1 рдФрд░ 31/1)ред
рдореИрдВ рдкрд╣рд▓реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдорд╛рди (рдЬреИрд╕реЗ рджрд┐рди рдХреЗ рдирд╛рдо рдпрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рджрд┐рди) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ:
xAxis.axisMinimum = 0
xAxis.axisMaximum = Double(xValues.count - 1)
xAxis.valueFormatter = IndexAxisValueFormatter(values: xValues)
рдореБрдЭреЗ рдЬреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдПрдХ рдмреЗрд╣рддрд░ computeAxisValues
рдЬреЛ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдмрд▓ рдФрд░ рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рдмреАрдЪ рд▓реЗрдмрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред
рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдФрд░ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред
рдореБрдЭреЗ рд╕рдордЭред рдПрдХреНрд╕ рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрднреА рднреА рдмрдЧ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдУрд╡рд░рд▓реИрдкред
рд╡рд░реНрддрдорд╛рди рддрд░реНрдХ рдкрд╣рд▓реЗ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдорд╛рди рдЬрд╛рдирдирд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдФрд░ рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд░реНрддрдорд╛рди computeAxisValues()
рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ / рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓ xAxis.axisMaximum рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ @danielgindi рдХреЗ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ computeAxisValues тАЛтАЛтАЛтАЛ() рдХреЗ рд▓рд┐рдП 'рдЯреНрд╡реАрдХ' рдХреЗ рдмрдЬрд╛рдп 'рдУрд╡рд░рд░рд╛рдЗрдб' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛/рдЕрдВрддрд┐рдо рдорд╛рди рд╣рдореЗрд╢рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд▓реЗрдмрд▓ рдХреЛ рдмрд╛рдзреНрдп рдпрд╛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдЖрдк рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП setLabelCount(count, forceLabelEnabled)
рдЕрдкрдиреЗ x рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдЖрдзреЗ рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддрд░реНрдХ рддрдм рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ:
// force label count
if axis.isForceLabelsEnabled
{
interval = Double(range) / Double(labelCount - 1)
// Ensure stops contains at least n elements.
axis.entries.removeAll(keepingCapacity: true)
axis.entries.reserveCapacity(labelCount)
var v = yMin
for _ in 0 ..< labelCount
{
axis.entries.append(v)
v += interval
}
n = labelCount
}
рдЗрд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╕рд╛рдзрд╛рд░рдг рдЧрдгрд┐рдд рд╣реИред
@ liuxuan30 рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХреНрд╕-рдЕрдХреНрд╖ рдорд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИрдВ? рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХреНрд╕-рдЕрдХреНрд╖ рдорд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдирд╛рдВрдХ рд╣реИрдВ
@ Vaibhav-varshaaweblabs x рдЕрдХреНрд╖ рдЕрдм рдХреЗрд╡рд▓ рдЪрд╛рд░реНрдЯ 3.x рдореЗрдВ рдбрдмрд▓ рд▓реЗ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдбрдмрд▓ рдХреЗ рдмрдЬрд╛рдп рд▓реЗрдмрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП valueFormatter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, valueFormatter рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдХреЛ рдЬрд╝реВрдорд┐рдВрдЧ/рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЯ 3.0.2 рдореЗрдВ рд╣рд▓ рдвреВрдВрдврд╛ рд╣реИ? рдореИрдВ рдЕрдкрдиреЗ рдПрдХреНрд╕-рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рджрд┐рдирд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдВрддрд┐рдо рд▓реЗрдмрд▓ рдХреЛ рдХрднреА-рдХрднреА рдЧрд╛рдпрдм рд╣реЛрддреЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ isAvoidFirstLastClippingEnabled
рд╕реЗрдЯ рд╕реЗ true
ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ # 2563 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
@ vabhav-varshaaweblabs @raudabaugh : рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдХреНрд╕-рдПрдХреНрд╕рд┐рд╕ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрдбрд╛рдЯрд╛рдХрд╛рдЙрдВрдЯ рд╡рд┐рдзрд┐ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯ рдпрд╛ рдбрдмрд▓ рдорд╛рдиреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИред
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ, рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж
bottomAxis.setLabelCount (рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБред рдЖрдХрд╛рд░ (), рд╕рддреНрдп); рдФрд░ рдЕрдВрддрд┐рдо рдЧрдгрдирд╛ рдХреЛ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЬрд┐рди рд░рд╛рдЗрдЯ рднреА рд╕реЗрдЯ рдХрд░реЗрдВред
lineChart?.xAxis.setLabelCount(arrOfMonth.count, force: true)
рдпрд╣ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ - рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ - рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛