Charts: X μΆ• 값을 μ‹ μ†ν•˜κ²Œ μˆ˜μ •ν•˜λŠ” 방법?

에 λ§Œλ“  2016λ…„ 08μ›” 20일  Β·  33μ½”λ©˜νŠΈ  Β·  좜처: danielgindi/Charts

μƒˆ λ¦΄λ¦¬μŠ€μ—μ„œλŠ” 일뢀 κ·Έλž˜ν”„λ₯Ό μƒμ„±ν•˜λŠ” 데 λ¬Έμ œκ°€ μžˆμ—ˆμ§€λ§Œ 이전 μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

func setChart(dataPoints: [String], values: [Double]) {
var dataEntries: [BarChartDataEntry] = []

for i in 0..<dataPoints.count {
    let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
    dataEntries.append(dataEntry)
}

let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Units Sold")
let chartData = BarChartData(xVals: months, dataSet: chartDataSet)
barChartView.data = chartData
}

λ‹€μŒ 행을 μ‚¬μš©ν•˜μ—¬ μ›” λ°°μ—΄κ³Ό 같은 값을 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.

let chartData = BarChartData(xVals: months, dataSet: chartDataSet)

μƒˆ 릴리슀 ν›„ λ™μΌν•œ κ·Έλž˜ν”„λ₯Ό κ΅¬ν˜„ν•˜λŠ” μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

func setChart(dataPoints: [String], values: [Double]) {

    var dataEntries: [BarChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry = BarChartDataEntry(x: Double(i+2), y:values[i], data: months )
        dataEntries.append(dataEntry)
    }

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold")

    let chartData = BarChartData()
    chartData.addDataSet(chartDataSet)
    barChartView.data = chartData

}

λͺ‡ μ‹œκ°„ λ™μ•ˆ μ‹œλ„ν–ˆμ§€λ§Œ X μΆ• 값을 μˆ˜μ •ν•˜λŠ” 방법을 찾을 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅°κ°€κ°€ λ‚˜λ₯Ό λ„μšΈ 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!!

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜λŠ” λΉ„μŠ·ν•œ λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. λ¬Έμ„œκ°€ λ„ˆλ¬΄ μ§§μ§€λ§Œ x μΆ•μœΌλ‘œ μž‘μ—…ν•˜λ €λ©΄ λͺ‡ μ€„μ˜ μ½”λ“œκ°€ ν•„μš”ν•©λ‹ˆλ‹€. @ajimenezjulio μ—μ„œ μ œκ³΅ν•˜λŠ” μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ BarChartView μ‚¬μš©μ„ λ‹¨μˆœν™”ν•˜κΈ° μœ„ν•΄ 클래슀 ν™•μž₯을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅°κ°€μ—κ²Œ μœ μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

extension BarChartView {

    private class BarChartFormatter: NSObject, IAxisValueFormatter {

        var labels: [String] = []

        func stringForValue(_ value: Double, axis: AxisBase?) -> String {
            return labels[Int(value)]
        }

        init(labels: [String]) {
            super.init()
            self.labels = labels
        }
    }

    func setBarChartData(xValues: [String], yValues: [Double], label: String) {

        var dataEntries: [BarChartDataEntry] = []

        for i in 0..<yValues.count {
            let dataEntry = BarChartDataEntry(x: Double(i), y: yValues[i])
            dataEntries.append(dataEntry)
        }

        let chartDataSet = BarChartDataSet(values: dataEntries, label: label)
        let chartData = BarChartData(dataSet: chartDataSet)

        let chartFormatter = BarChartFormatter(labels: xValues)
        let xAxis = XAxis()
        xAxis.valueFormatter = chartFormatter
        self.xAxis.valueFormatter = xAxis.valueFormatter

        self.data = chartData
    }
} 

μš©λ²•

func setChart(){
        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        let unitsSold = [20.0, 4.0, 3.0, 6.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]

        barChartView.setBarChartData(xValues: months, yValues: unitsSold, label: "Monthly Sales")
    } 

λͺ¨λ“  33 λŒ“κΈ€

λΆ„μ‚°ν˜• μ°¨νŠΈμ—μ„œ xμΆ• 값을 μˆ˜μ •ν–ˆλŠ”λ° μ§€κΈˆ μž‘λ™ μ€‘μž…λ‹ˆλ‹€.
2점을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

1: dataEntry = BarChartDataEntry(x: Double(i+2), y:values[i], 데이터: κ°œμ›” )
BarChartDataEntry λ©”μ†Œλ“œ λŒ€μ‹  ChartDataEntry(x,y)λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

2: chartData = BarChartData() -> chartData = BarChartData(dataset)둜 μ„€μ •

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

NyoSeintμ—κ²Œ κ°μ‚¬ν•©λ‹ˆλ‹€. x좕을 μˆ˜μ •ν•  수 μžˆλŠ” 방법이 μ˜³μ•˜μ§€λ§Œ 숫자 λ°©μ‹μœΌλ‘œ 이 κ²½μš°μ—λŠ” x좕에 λͺ‡ 달 λ™μ•ˆ λ¬Έμžμ—΄μ„ λ„£μœΌλ €κ³  ν•©λ‹ˆλ‹€.

ChartsDemoλ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 닡이 μžˆλ‹€κ³  λ―ΏμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ 이것에 λŒ€ν•œ 닡변을 μ°Ύκ³  있으며 μ—¬κΈ°μ—μ„œ 더 일찍 사둀λ₯Ό μ—΄μ—ˆμŠ΅λ‹ˆλ‹€ - https://github.com/danielgindi/Charts/issues/1331

데λͺ¨μ—μ„œ 닡을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. 해결책을 찾으면 μ•Œλ €μ£Όμ„Έμš”. 감사

해결책을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. μƒˆ 클래슀λ₯Ό λ§Œλ“€μ§€ μ•Šκ³ λ„ λ‹€λ₯Έ 방법이 더 λ‚˜μ€ λ°©λ²•μœΌλ‘œ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것이 μ œκ°€ 찾은 κ²ƒμž…λ‹ˆλ‹€.

λ¨Όμ € 포맷터 ν΄λž˜μŠ€κ°€ 될 μƒˆ 클래슀λ₯Ό λ§Œλ“€κ³  IAxisValueFormater μΈν„°νŽ˜μ΄μŠ€λ₯Ό μΆ”κ°€ν•œ λ‹€μŒ stringForValue λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒˆ 값을 μ‚¬μš©μž μ •μ˜ν•˜κ³  두 개의 맀개 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 첫 λ²ˆμ§ΈλŠ” μ‹€μ œ κ°’μž…λ‹ˆλ‹€(λ‹€μŒκ³Ό 같이 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 인덱슀) 두 λ²ˆμ§ΈλŠ” 값이 μžˆλŠ” μΆ•μž…λ‹ˆλ‹€.

import UIKit
import Foundation
import Charts

@objc(BarChartFormatter)
public class BarChartFormatter: NSObject, IAxisValueFormatter{

var months: [String]! = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]


public func stringForValue(value: Double, axis: AxisBase?) -> String {

    return months[Int(value)]
}

}

이제 νŒŒμΌμ—μ„œ setChart() ν•¨μˆ˜ μ‹œμž‘ 뢀뢄에 두 개의 λ³€μˆ˜λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€. ν•˜λ‚˜λŠ” 포맷터 클래슀용이고 λ‹€λ₯Έ ν•˜λ‚˜λŠ” μΆ• ν΄λž˜μŠ€μš©μž…λ‹ˆλ‹€.

let formato:BarChartFormatter = BarChartFormatter()
let xaxis:XAxis = XAxis()

λ‹€μŒμœΌλ‘œ for in λ£¨ν”„μ˜ 끝으둜 μ΄λ™ν•˜μ—¬ μΈλ±μŠ€μ™€ 좕을 포맷터 λ³€μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€.

formato.stringForValue(Double(i), axis: xaxis)

루핑 ν›„ μΆ• λ³€μˆ˜μ— ν˜•μ‹μ„ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

xaxis.valueFormatter = formato

λ§ˆμ§€λ§‰ λ‹¨κ³„λŠ” barChartView에 μƒˆλ‘œμš΄ xaxisformattedλ₯Ό μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

barChartView.xAxis.valueFormatter = xaxis.valueFormatter

setChart() ν•¨μˆ˜μ˜ λ‹€λ₯Έ λͺ¨λ“  쀄은 κ·ΈλŒ€λ‘œ λ‘μ‹­μ‹œμ˜€. 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

@ajimenezjulio 이것은 정말 μ˜¬λ°”λ₯Έ λ°©λ²•μž…λ‹ˆλ‹€ :-)

μš°λ¦¬λŠ” 독립적인 x-κ°’ λ•Œλ¬Έμ— μ§€κΈˆ 포맷터λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이것은 λ‹¨μˆœν•œ x-색인 배열을 μ‚¬μš©ν•˜λ˜ μ‚¬λžŒλ“€μ—κ²ŒλŠ” λ¬Όλ‘  덜 νŽΈμ•ˆν•˜μ§€λ§Œ λͺ¨λ“  κ°€λŠ₯μ„±μ˜ 세계λ₯Ό μ—½λ‹ˆλ‹€. 이것은 λ ˆμ΄λΈ”κ³Ό ν•¨κ»˜ x-색인을 미리 μ •μ˜ν•΄μ•Ό ν•˜λŠ” μ œμ•½μ„ μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ―Έλž˜μ— 이와 같은 λ‹¨μˆœν•œ 상황에 λŒ€λΉ„ν•˜μ—¬ μ½”λ“œλ₯Ό 덜 μž‘μ„±ν•˜λŠ” μƒˆλ‘œμš΄ 방법을 μ œμ‹œν•  것이라고 ν™•μ‹ ν•©λ‹ˆλ‹€.

xaxisλ₯Ό μ‚¬μš©μž μ •μ˜ν•˜λŠ” μ‰¬μš΄ 방법을 μ•Œλ €μ£Όμ„Έμš”.
이전 버전은 그것에 λŒ€ν•΄ λ„ˆλ¬΄ μ’‹μ•˜μŠ΅λ‹ˆλ‹€! (λ˜λŠ” 적어도 Swift/Objc에 λŒ€ν•œ νŠœν† λ¦¬μ–Ό)

κ³ λ§ˆμ›Œ.

λͺ¨λ“  μ—…λ°μ΄νŠΈ ?

@dante20007 μ£„μ†‘ν•©λ‹ˆλ‹€. λͺ¨λ“  것을 κ°€μ§ˆ μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. μ‚¬λžŒλ“€μ€ 0, 1, 2뿐만 μ•„λ‹ˆλΌ 0, 1.3, 2.7 λ“± λͺ¨λ“  x-색인에 ν•­λͺ©μ„ μΆ”κ°€ν•  수 있기λ₯Ό μ›ν•©λ‹ˆλ‹€. 배열은 μ΄λŸ¬ν•œ 값에 λŒ€ν•œ λ ˆμ΄λΈ”μ„ λ‚˜νƒ€λ‚Ό 수 μ—†μŠ΅λ‹ˆλ‹€.

X좕에 월을 ν‘œμ‹œν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•©λ‹ˆκΉŒ? μ—­μ‹œ λΆˆκ°€λŠ₯ ?

κ³ λ§ˆμ›Œ.

μ•ˆλ…•ν•˜μ„Έμš”, 이 μ†”λ£¨μ…˜μ„ μΆ”κ°€ν•˜λ €κ³  ν•˜μ§€λ§Œ 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•˜λ©΄ μΈλ±μŠ€κ°€ λ²”μœ„λ₯Ό 벗어났닀고 ν•©λ‹ˆλ‹€. 12κ°œμ›” 밖에 남지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

λ˜ν•œ x좕을 μ‚¬μš©μž μ •μ˜ν•˜λŠ” μ‰¬μš΄ 방법이 ν•„μš”ν•©λ‹ˆλ‹€. 이 λ•Œλ¬Έμ— 이전 λ²„μ „μ˜ 차트둜 λŒμ•„κ°”μŠ΅λ‹ˆλ‹€.

이것은 λ‚΄ 문제λ₯Ό μ‚¬μš©μž μ •μ˜ν•˜λŠ” μ‰¬μš΄ λ°©λ²•μ΄λ―€λ‘œ λ‹€μ‹œ λ Œλ”λ§μ„ μ‹œμž‘ν•˜κΈ° μœ„ν•΄ 였λ₯Έμͺ½μœΌλ‘œ 이동할 λ•Œ libλ₯Ό μˆ˜μ •ν•˜κ³  λ Œλ”λ§ν•  λ•Œ μΈλ±μŠ€κ°€ λ¬΄μ‹œλ˜λ„λ‘ λ‘μ—ˆμŠ΅λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. "X μΆ• 값을 Swift둜 μˆ˜μ •ν•˜λŠ” 방법"에 λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ¬Έμžμ—΄ μ‚¬μš©

μ–΄ λ‚˜λ„ 그래. @ajimenezjulio와 같은 닡변을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” Objective-C에 μžˆλŠ” ν”„λ‘œμ νŠΈλ₯Ό μœ μ§€ κ΄€λ¦¬ν•˜κ³  있으며 @ajimenezjulio 의 닡변을 μž¬ν˜„ν•  수 μžˆμ—ˆμ§€λ§Œ μ»΄νŒŒμΌλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ–΄λ–€ 이유둜 IAxisValueFormatterκ°€ μΈμ‹λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λΉ„μŠ·ν•œ λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. λ¬Έμ„œκ°€ λ„ˆλ¬΄ μ§§μ§€λ§Œ x μΆ•μœΌλ‘œ μž‘μ—…ν•˜λ €λ©΄ λͺ‡ μ€„μ˜ μ½”λ“œκ°€ ν•„μš”ν•©λ‹ˆλ‹€. @ajimenezjulio μ—μ„œ μ œκ³΅ν•˜λŠ” μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ BarChartView μ‚¬μš©μ„ λ‹¨μˆœν™”ν•˜κΈ° μœ„ν•΄ 클래슀 ν™•μž₯을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅°κ°€μ—κ²Œ μœ μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

extension BarChartView {

    private class BarChartFormatter: NSObject, IAxisValueFormatter {

        var labels: [String] = []

        func stringForValue(_ value: Double, axis: AxisBase?) -> String {
            return labels[Int(value)]
        }

        init(labels: [String]) {
            super.init()
            self.labels = labels
        }
    }

    func setBarChartData(xValues: [String], yValues: [Double], label: String) {

        var dataEntries: [BarChartDataEntry] = []

        for i in 0..<yValues.count {
            let dataEntry = BarChartDataEntry(x: Double(i), y: yValues[i])
            dataEntries.append(dataEntry)
        }

        let chartDataSet = BarChartDataSet(values: dataEntries, label: label)
        let chartData = BarChartData(dataSet: chartDataSet)

        let chartFormatter = BarChartFormatter(labels: xValues)
        let xAxis = XAxis()
        xAxis.valueFormatter = chartFormatter
        self.xAxis.valueFormatter = xAxis.valueFormatter

        self.data = chartData
    }
} 

μš©λ²•

func setChart(){
        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        let unitsSold = [20.0, 4.0, 3.0, 6.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]

        barChartView.setBarChartData(xValues: months, yValues: unitsSold, label: "Monthly Sales")
    } 

이봐, λ‹€λ₯Έ 차트 ν™•μž₯도 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆκΉŒ?

" BarChartFormatterκ°€ ν”„λ‘œν† μ½œ IAxisValueFormatterλ₯Ό μ€€μˆ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€." 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

μ™œμ΄ 짓을 ν–ˆλ‚˜μš”? Android Studioμ—μ„œ μ‚¬μš©ν•˜κΈ° λ„ˆλ¬΄ μ‰¬μ› μŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ λ°°μ—΄ ["J", "F" λ“±...을 XμΆ•μœΌλ‘œ κ°€μ Έμ˜€λŠ” 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ? λ‚œ μ—¬κΈ° λ§ν–ˆμ–΄. 이 "μ˜ˆλŠ” λ‚΄ 기술 μˆ˜μ€€ μ΄μƒμž…λ‹ˆλ‹€.

ObjCκ°€ μ‚¬μš©μž μ •μ˜ λ ˆμ΄λΈ”λ‘œ X μΆ•μ˜ ν˜•μ‹μ„ μ§€μ •ν•˜λŠ” μ†”λ£¨μ…˜μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

YourViewControllerViewControllerμ—μ„œ var months μ„ μ–Έ: [String] = λ¬Έμžμ—΄ 및 ν•„μš”ν•œ μ›” κ°’ μ„€μ •
ν™•μž₯ YourViewControllerViewController: IAxisValueFormatter {
func stringForValue(_ κ°’: Double, μΆ•: AxisBase?) -> λ¬Έμžμ—΄ {
κ°œμ›” λ°˜ν™˜[Int(κ°’) % months.count]
}
}

μ•ˆλ…•,
μ†”λ£¨μ…˜μ„ μΆ”κ°€ν•˜λ €κ³ ν–ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 항상 '색인이 λ²”μœ„λ₯Ό λ²—μ–΄λ‚¬μŠ΅λ‹ˆλ‹€'λΌλŠ” 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

예, stringForValue 이 ν˜ΈμΆœλ˜λŠ” 방식과 차트/데이터 μ‚¬μš©μž 지정이 데이터에 λŒ€ν•΄ ν˜ΈμΆœλ˜λŠ” 방식을 λ³€κ²½ν•˜λŠ” 방법을 더 μ΄ν•΄ν–ˆμœΌλ©΄ ν•©λ‹ˆλ‹€. μΈλ±μŠ€κ°€ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜μ§€ μ•Šλ„λ‘ 이 검사 쀑 일뢀λ₯Ό μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ μΌμ’…μ˜ 반창고 πŸ€·β€β™‚οΈ

       func stringForValue(_ value: Double, axis: AxisBase?) -> String {
            let index = Int(value)
            if index < labels.count && index >= 0 {
                return labels[index]
            } else {
                return ""
            }
        }

μ—΄κΈ° λ²„νŠΌ

@robotsquidward - μ €λ„μš”. λ¬Έμ„œμ—μ„œ μž‘λ™ 방식을 μ„€λͺ…ν•˜κ±°λ‚˜ 데λͺ¨ 쀑 ν•˜λ‚˜μ—μ„œ μž‘λ™ 방법을 보여주면 쒋을 κ²ƒμž…λ‹ˆλ‹€. λ ˆμ΄λΈ”μ— λ¬Έμžμ—΄μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” _λ§Žμ€_ μ‚¬λžŒλ“€μ΄ μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ 도움이 될 λ§Œν•œ λͺ…ν™•ν•œ μ„€λͺ…μ΄λ‚˜ μ˜ˆκ°€ μ—†μŠ΅λ‹ˆλ‹€. look at stringForValue() λΌλŠ” 닡변이 많이 λ³΄μž…λ‹ˆλ‹€. ν•œμˆ¨μ„ 쉬닀...

@AlexSmet
ν™•μž₯을 μœ„ν•œ λ§Žμ€ κ°μ‚¬ν•©λ‹ˆλ‹€! 그것은 잘 μž‘λ™ν•©λ‹ˆλ‹€. κΊΎμ€μ„ ν˜• 차트λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ μ½”λ“œλ₯Ό μ•½κ°„ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μž‘λ™ν•˜μ§€λ§Œ μ‹œκ°μ  버그가 μžˆμŠ΅λ‹ˆλ‹€. XμΆ•μ˜ μš”μΌμ΄ μ˜¬λ°”λ₯΄κ²Œ μ •λ ¬λ˜μ§€ μ•Šμ€ 이유λ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ? λ˜ν•œ μ›”μš”μΌκ³Ό μˆ˜μš”μΌμ΄ 2번 μ—°μ†μœΌλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.
μŠ€ν¬λ¦°μƒ· 보기: https://imgur.com/a/OG7OuSY

dataContent1 = ["μ›”", "ν™”", "수", "λͺ©", "금"]
dataContent2 = [230, 320, 403, 430, 312]
chartView.setLineChartData(xValues: dataContent1, yValues: dataContent2, λ ˆμ΄λΈ”: "BTC")

@benzai
xAxis에 λŒ€ν•œ λ ˆμ΄λΈ” 수λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ΄‘μ‚° ν™•μž₯κ³Ό 같은 μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 setLineChartData ν•¨μˆ˜μ— λ¬Έμžμ—΄μ„ ν•˜λ‚˜λ§Œ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
self.xAxis.setLabelCount(xValues.count, force: true)

@benzai λ‚΄ μ°¨νŠΈκ°€ 12κ°œμ›”μ„ μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œν•˜λ €λ©΄ @AlexSmet 의 μ ‘κ·Ό 방식을 μ•½κ°„ μˆ˜μ •ν•˜κ³  force: false λ₯Ό μ„€μ •ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

barChartView.xAxis.setLabelCount(dataPoints.count, force: false)

force κ°€ true둜 μ„€μ •λ˜λ©΄ μ°¨νŠΈλŠ” 포맷터 λŒ€λ¦¬μžμ—μ„œ μ΄μƒν•œ xAxis 값을 μš”μ²­ν•˜κ³ (예: 0.0 λŒ€μ‹  -0.5) λ ˆμ΄λΈ”μ΄ ν•΄λ‹Ή yValue와 μ˜¬λ°”λ₯΄κ²Œ μ •λ ¬λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

λ¬Έμ„œ λ§ˆν¬μ—…μ€ 'true인 경우 μ„€μ •λœ y-λ ˆμ΄λΈ” μˆ˜κ°€ κ°•μ œ μ μš©λ©λ‹ˆλ‹€'라고 ν‘œμ‹œλ˜μ–΄ 이것이 y-λ ˆμ΄λΈ”μ„ μœ„ν•œ κ²ƒμž„μ„ μ•”μ‹œν•˜μ§€λ§Œ x 및 yμΆ• λ ˆμ΄λΈ” λͺ¨λ‘μ— μ μš©λ˜λŠ” κ²ƒμ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆκΉŒ?

μ™Όμͺ½ 좕에 λ¬Έμžμ—΄ λ ˆμ΄λΈ”μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

라인 차트둜:

self.lineChart.xAxis.valueFormatter = IndexAxisValueFormatter(values: self.chartLabels)
self.lineChart.xAxis.avoidFirstLastClippingEnabled = true

였늘 기뢄이 μ–΄λ– μ„Έμš”.
λ„μ™€μ£Όμ„Έμš”. Swift 4 ν”„λ‘œμ νŠΈμ˜ λ§‰λŒ€ 차트둜 값을 μ„€μ •ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

tE1U5
이런 μ’…λ₯˜μ˜ κΊΎμ€μ„ ν˜• 차트λ₯Ό 그리고 μ‹ΆμŠ΅λ‹ˆλ‹€.
두 μ‹œκ°„ 간격 사이에 μ—¬λŸ¬ 점을 μΆ”κ°€ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? (예, μ˜€μ „ 7μ‹œμ—μ„œ μ˜€μ „ 8μ‹œ 사이에 μ—¬λŸ¬ 개의 점을 ν‘œμ‹œν•˜λ €λŠ” 경우)

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰