Charts: [Swift 3] ์ƒ์„ฑ์ž์— xVals๊ฐ€ ์—†๋Š” LineChartData

์— ๋งŒ๋“  2016๋…„ 11์›” 07์ผ  ยท  12์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: danielgindi/Charts

"๋ชจ๋“  ๋ฐ์ดํ„ฐ ์„ธํŠธ ์ƒ์„ฑ์ž๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค - ๋” ์ด์ƒ x-์ธ๋ฑ์Šค ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ LineChartData์— ๋” ์ด์ƒ "xVals" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฉด x์ถ•์— ๋ฌธ์ž์—ด์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๊นŒ?
์˜ˆ์ „์—๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ ์‰ฌ์› ๋Š”๋ฐ...

let weights: [Double] = self.getWeigths()
let weightDates: [String] = self.getWeightDates()

var yValues : [ChartDataEntry] = [ChartDataEntry]()
    for i in 0 ..< dateLastWeights.count {
        let entry = ChartDataEntry(x: Double(i), y: weights[i])
        yValues.append(entry)
    }
let set: LineChartDataSet = LineChartDataSet(values: yValues, label: "First Set")
var dataSets : [LineChartDataSet] = [LineChartDataSet]()
dataSets.append(set)

let data: LineChartData = LineChartData(xVals: weightDates, dataSets: dataSets)
self.lineChart.data = data

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ €๋„ ์ด๊ฒƒ๋•Œ๋ฌธ์— ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ถ• ๊ฐ’ ํฌ๋งทํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BarChartView ์ž์ฒด์—์„œ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

let labels = ["Value 1", "Value 2", "Value 3"]
barChartView.xAxis.valueFormatter = DefaultAxisValueFormatter(block: {(index, _) in
    return labels[Int(index)]
})

ํ™•์‹คํžˆ ์ด์ „ ๋ฐฉ๋ฒ•๋งŒํผ ๊นจ๋—ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.


๋‹ค๋‹ˆ์—˜๊ธด๋””์˜ ํŽธ์ง‘

3.0.1๋ถ€ํ„ฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: labels)

๋˜ํ•œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

barChartView.xAxis.granularity = 1.0

๋ชจ๋“  12 ๋Œ“๊ธ€

์ €๋„ ์ด๊ฒƒ๋•Œ๋ฌธ์— ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ถ• ๊ฐ’ ํฌ๋งทํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BarChartView ์ž์ฒด์—์„œ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

let labels = ["Value 1", "Value 2", "Value 3"]
barChartView.xAxis.valueFormatter = DefaultAxisValueFormatter(block: {(index, _) in
    return labels[Int(index)]
})

ํ™•์‹คํžˆ ์ด์ „ ๋ฐฉ๋ฒ•๋งŒํผ ๊นจ๋—ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.


๋‹ค๋‹ˆ์—˜๊ธด๋””์˜ ํŽธ์ง‘

3.0.1๋ถ€ํ„ฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: labels)

๋˜ํ•œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

barChartView.xAxis.granularity = 1.0

@esalter-va ๋„ค! ์ •๋ง ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!! ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ๋“  ๊ทธ๋ž˜ํ”ฝ์€ ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ธ๋ฑ์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... "์ƒ‰์ธ"๋งค๊ฐœ ๋ณ€์ˆ˜์— ์ด์ƒํ•œ ์‹ญ์ง„์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค (3.5; 0; 0.69; 1.39; 2.09; 2.79; 3.5) ๊ทธ๋Ÿฐ ๋‹ค์Œ Int (3; 1 ; 1; 2; 2; 3) ํ•˜์ง€๋งŒ ๋‚ด yValues์—๋Š” ํ•ญ๋ชฉ์ด 4๊ฐœ๋ฟ์ž…๋‹ˆ๋‹ค... ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋„ค๋ฒ„๋ฏธ๋“œ! ์ด ๋ฌธ์ œ๋Š” ์„ธ๋ถ„์„ฑ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ์„ธ๋ถ„์„ฑ = 1์„ ์‹œ๋„ํ–ˆ๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

@reicamargo ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์†”๋ฃจ์…˜์„ ๊ฒŒ์‹œ

barChart.xAxis.granularity = 1

์–˜๋“ค ์•„. ์‹ค์ œ๋กœ ๊ฒฝ๊ณ„ ๋“ฑ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ด์ „ ์ธ๋ฑ์Šค ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ์ƒˆ๋กœ์šด IndexAxisValueFormatter ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ chart.xAxis.valueFormatter = IndexAxisValueFormatter(values: ["first index", "second index", "third index"]) , granularity = 1 ์™€ ๊ฒฐํ•ฉํ•˜๋ฉด ์ž˜ ๋ฉ๋‹ˆ๋‹ค :-)

์„ธ๋ถ„์„ฑ์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ - ์—ฌ์ „ํžˆ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ๋ถ„์ˆ˜ ๊ฐ’์— ๋Œ€ํ•œ ๋ ˆ์ด๋ธ”์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Š” ์ „์ฒด ๊ฐ’์ด ๋ Œ๋”๋ง๋˜์ง€ ์•Š์„ ๋•Œ ๋ ˆ์ด๋ธ”์ด ์ˆจ๊ฒจ์งˆ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด xAxis ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? PieChart์—๋Š” XAxis: ํŒŒ์ผ์ด ์—†์Šต๋‹ˆ๊นŒ?

@danielgindi https://github.com/danielgindi/Charts/issues/1909 ๋ฅผ ํ™•๋Œ€/์ถ•์†Œํ•˜๋Š” ๋™์•ˆ IndexAxisValueFormatter ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค .

@danielgindi ๋ชจ๋“  ์„ธํŠธ์— ๋Œ€ํ•ด ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ์„ธํŠธ๋กœ dataSet ์„ ์ƒ์„ฑํ•œ ํ›„์— ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”

๋‹ซํžŒ ๋ฌธ์ œ์— ๊ธ€์„ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์–ด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฌธ์ œ

๋‹ซํžŒ ๋ฌธ์ œ์— ๊ธ€์„ ์˜ฌ๋ ค์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๋‚œ 7์‹œ๊ฐ„ ๋™์•ˆ ์ด ๊ธ€์„ ์ฝ๋‹ค๊ฐ€ ๊ธธ์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ์š”์ผ๋งˆ๋‹ค x์ถ• ๋ ˆ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. esalter-va์—์„œ ๊ฒŒ์‹œํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ ˆ์ด๋ธ”์ด ๋ฐฑ์—… ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์›”์š”์ผ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ’ ํฌ๋งทํ„ฐ์—์„œ ์ฐธ์กฐํ•˜๋Š” ์ธ๋ฑ์Šค๋Š” ์›”์š”์ผ์— ๋Œ€ํ•œ Int ํ‘œํ˜„๊ณผ๋งŒ ๊ฐ™์„ ๊ฒƒ์ด๋ฉฐ ๋‹ค๋ฅธ ๋‚ ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ๋ ˆ์ด๋ธ”(์›”์š”์ผ)๋งŒ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ ์งœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ฐ ๋‚ ์งœ์— ๋Œ€ํ•œ ๋ ˆ์ด๋ธ”์„ ์›ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

@bsachetta. ๋‹น์‹ ์€ ํ˜ผ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ช‡ ์ฃผ ๋™์•ˆ ์ด ๋ฌธ์ œ๋กœ ๊ณ ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ, null ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ง€์›์€ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ˆœ์ฐจ์  xAxis์— ๋Œ€ํ•œ ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ง์ ‘ ๊ฑด๋„ˆ๋›ฐ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ผ์ข…์˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ทฐํฌํŠธ๋ฅผ ์ฑ„์šธ ๋งŒํผ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰