2016-09-21 18 views
11

ios-chart kütüphanesiyle BarChart yapıyorum. MPAndroidChart'a benzediğinden, bunları oluşturma konusunda çok fazla sorun yaşıyorum ancak haftanın günleri ile her sütunun üzerine bir ad/etiket ekleyemiyorum.ios grafiğinde her sütun için nasıl bir ad ekleyebilirim?

Android'de, ilgili BarDataSet değerleri ayarladıktan sonra ben kullandı:

BarData data = new BarData(labels, dataset); 

etiketler her sütun için adı ve veri kümesi BarDataSet nerede.

Sorun şu ki, Swift adresinde her bir sütunun etiketlerini bu şekilde ekleyemiyorum. Bu benim an be koduna (basit bir örnek) ise:

@IBOutlet weak var barChartView: BarChartView! 

var entries = [ChartDataEntry]() 
entries.append(BarChartDataEntry(x: 1.0, yValues: [1.0], label: "Monday")) 
entries.append(BarChartDataEntry(x: 2.0, yValues: [4.0], label: "Tuesday")) 

let charDataSet = BarChartDataSet(values: entries, label: "legend") 
let charData = BarChartData(dataSets: [charDataSet]) 
barChartView.data = charData 

Ve burada sonucudur:

enter image description here

ama Monday ve Tuesday değerleri nereye koymak mümkün değilim 1.04, 1.12, 1.20 ... değerler belirir. Ayrıca, etiketleri BarChartData işlevine ekleyemiyorum (Android'da olduğu gibi).

Her bir sütunun üzerinde gösterilmek üzere nereye Pazartesi ve Salı değerleri eklemeliyim?

Şimdiden teşekkürler!

+0

uygulanabilir

? – prabodhprakash

+0

@prabodhprakash Öğreticiyi okuyorum ve özel grafiğime uyarlıyorum. Lütfen sabırlı olun, kodumu yeniden kodlamak için birkaç dakikaya ihtiyacım var. –

cevap

3

aşağıdaki bağlantıda bulunan cevap bakarsak, birinin x ekseni üzerinde dize etiketlerin kullanımına izin vermek için Charts yeni Swift 2.3 sürümü olarak girdiğinin göreceksiniz:

https://stackoverflow.com/a/39149070/6889264

Swift 3.0 ile çalıştığınızı, ancak bu sorunu oluşturan gözden geçirilmiş BarChartData() işlevinin sözdiziminin 2.3 ile 3.0 arasında olduğunu görüyorsunuz, dolayısıyla aynı çözümün geçerli olması olası görünüyor.

DÜZENLEME Sadece test, o cevap Swift 3. Aşağıdaki cevabı sizin için çalışmasını vermedi

0
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] 
let daysValues = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0] 

setChart(days, values: daysValues) 

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: "Days Value") 
let chartData = BarChartData(xVals: days, dataSet: chartDataSet) 
barChartView.data = chartData 

ben https://www.appcoda.com/ios-charts-api-tutorial/ bu cevabı almış: Daha fazla seçenek ve ayrıntılı bilgi için bakınız ki.

+0

Swift 3.0 kullanıyorum ve 'BarChartDataEntry (double, Int)' gibi parametrelerle bir işlev yok. Sadece 'BarChartDataEntry (çift, çift) mevcuttur. –

+0

Int'i hala iki katına çıkarabiliriz? bu şekilde çalışmıyor mu? – prabodhprakash

+0

Evet, Double (i) 'ile bir çift olarak geçmeyi denedim (Xcode 8 bunu bana önerdi, ancak yorumu güncellemeyi unuttum). Şimdi karşı karşıya olduğum sorun, hata "ölümcül hata: aralık dışı indeks" yani kod üzerinde gerekenden daha fazla endeks olup olmadığını arıyorum. Aldığım değişiklikleri göndereceğim. –

İlgili konular