Charts: [Swift 3] LineChartData بدون xVals على المُنشئ

تم إنشاؤها على ٧ نوفمبر ٢٠١٦  ·  12تعليقات  ·  مصدر: danielgindi/Charts

أعلم أن "جميع منشئي مجموعات البيانات قد تغيروا - لم يعدوا يأخذون مصفوفة من مؤشرات x" ولكن كيف يمكنني وضع سلاسل على محوري x الخاص بي الآن إذا لم يكن لدى LineChartData معلمات "xVals" بعد الآن ؟؟؟
من قبل كان من السهل جدًا القيام بذلك ...

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)]
})

إنها بالتأكيد ليست نظيفة مثل الطريقة السابقة للقيام بذلك.


تحرير بواسطة danielgindi

منذ 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)]
})

إنها بالتأكيد ليست نظيفة مثل الطريقة السابقة للقيام بذلك.


تحرير بواسطة danielgindi

منذ 3.0.1 ، يمكنك أيضًا القيام بما يلي:

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

أيضًا ، ربما تريد إضافة:

barChartView.xAxis.granularity = 1.0

@ esalter- فا نعم! هذا حقا يعمل !! ولكن بطريقة ما يعرض الرسم عددًا من الفهارس أكثر مما ينبغي ... إنه يعرض أرقامًا عشرية غريبة على معلمة "الفهرس" مثل (3.5 ؛ 0 ؛ 0.69 ؛ 1.39 ؛ 2.09 ؛ 2.79 ؛ 3.5) ثم يلقي إلى Int (3 ؛ 1 ؛ 1 ؛ 2 ؛ 2 ؛ 3) لكن قيم y الخاصة بي تحتوي على 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 ، هناك شخص ما يقول IndexAxisValueFormatter لديه مشاكل أثناء التكبير / التصغير https://github.com/danielgindi/Charts/issues/1909.

danielgindi يجب أن نفعل ذلك لكل مجموعة ؟ أو يجب أن يكون بعد إنشاء مجموعة البيانات بكل المجموعات ؟.

شكرا

أنا آسف للنشر في قضية مغلقة. ومع ذلك ، لدي نفس المشكلة ، هذا الحل لا يعمل بالنسبة لي.
مشكلتي

أعتذر عن النشر حول قضية مغلقة أيضًا ، لكنني كنت أقرأ هذا الأمر خلال آخر 7 ساعات وقد ضاعت. لنفترض أنك تريد الحصول على تسمية المحور س لكل يوم من أيام الأسبوع. إذا كنت تستخدم الحل المنشور بواسطة esalter-va ، يبدو أن الملصقات تعتمد على بيانات النسخ. بمعنى ، إذا كان لديك بيانات ليوم الاثنين فقط ، فسيكون الفهرس المشار إليه بواسطة مُنسق القيمة مساويًا لتمثيل Int ليوم الاثنين فقط ، وليس أي يوم آخر. وبالتالي ، ستحصل على ملصق واحد فقط (الاثنين). إذا كنت تريد تصنيفًا لكل يوم بغض النظر عما إذا كانت لديك بيانات لذلك اليوم ، فكيف تفعل ذلك؟

تضمين التغريدة انت لست وحدك. لقد كنت أعاني من هذه المشكلة منذ أسابيع. بقدر ما أستطيع أن أقول ، لا يوجد دعم لنقطة بيانات فارغة. يجب أن يكون لديك قيمة لكل xAxis متسلسل أو سيكون عليك معرفة كيفية تخطيها بنفسك. لقد تمكنت من معرفة كيفية القيام بذلك وهو نوع من العمل ولكنه ينهار عندما لا يكون لديك نقاط بيانات كافية لملء إطار العرض.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

guoyutaog picture guoyutaog  ·  3تعليقات

Aungbandlab picture Aungbandlab  ·  4تعليقات

deepumukundan picture deepumukundan  ·  3تعليقات

cilasgimenez picture cilasgimenez  ·  4تعليقات

sjdevlin picture sjdevlin  ·  3تعليقات