2016-04-08 16 views
1

Yatay çubuk grafiğini, 2 y değeriyle çizmek için IOS Grafikler kullanıyorum.Yüzgecin yanında ve Y ekseninde (RightAxis) bile her iki y değerine de '%' simgesi ekleme zorunluluğum var Bu nasıl yapılır ? İşte benim grafik resmim [çizdiğim yatay çubuk şeması] [1] Ve bu cümleyi objektif-C kullanarak fakat Swift framework kullanarak çiziyorum. İşte creativios Grafikler'de% Y eksen değerleri/etiketleri nasıl eklenir?

NSNumberFormatter *formater = [[NSNumberFormatter alloc] init]; 
formater.numberStyle = NSNumberFormatterPercentStyle; 

_graphContainerView.rightAxis.valueFormatter = formater; 

tarafından tavsiye olarak ben

https://github.com/danielgindi/Charts benim koduna bu alt çizgiler eklendi kullanıyorum grafikler için link Ama sorun ondalık noktaları olarak her bir çubuğun yanında değerleri alıyorum olduğunu aşağıdaki Görüntü gösterilen ama yüzdelik değerleri de onları istediğiniz gibi burada benim kodudur

- (void) setDataForXAxis: (NSMutableArray *) xVals benchMarkValues: (NSMutableArray *) benchMarkVals percentageValues: (NSMutableArray *) percentVals This image is after adding the below code {

NSMutableArray *yVals1 = [[NSMutableArray alloc] init]; 
NSMutableArray *yVals2 = [[NSMutableArray alloc] init]; 

for (int i = 0; i < xVals.count; i++) 
{ 
    NSNumber *val = [benchMarkVals objectAtIndex:i]; 
    [yVals1 addObject:[[BarChartDataEntry alloc] initWithValue:val.doubleValue/100 xIndex:i]]; 

    val = [percentVals objectAtIndex:i]; 
    [yVals2 addObject:[[BarChartDataEntry alloc] initWithValue:val.doubleValue/100 xIndex:i]]; 
} 

BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithYVals:yVals1 label:@"Sectoral \nBreakdown(Benchmark)"]; 
[set1 setColor:[UIColor colorWithRed:236/255.f green:205/255.f blue:118/255.f alpha:1.f]]; 
BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithYVals:yVals2 label:@"Sectoral \nBreakdown(%)"]; 
[set2 setColor:[UIColor colorWithRed:31/255.f green:125/255.f blue:184/255.f alpha:1.f]]; 
set2.barSpace = set1.barSpace = 0; 

NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 
[dataSets addObject:set1]; 
[dataSets addObject:set2]; 

BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:dataSets]; 
data.groupSpace = 1.1; 
[data setValueFont:[UIFont fontWithName:kUTLightFontName size:6.f]]; 
_graphContainerView.data = data; 

}

cevap

2

Sen% sembolünü içerecek şekilde y-Eksen valueFormatter değiştirebilir. E.g. valueFormatter öğesini özel bir NSNumberFormatter olarak ayarlayın ve numberStyle'ı NSNumberFormatterPercentStyle olarak ayarlayın.

Değerlerinizi 0-100 arasında 0-1 arasında bir değere değiştirmeniz gerekebileceğini unutmayın. Şu anda test edemiyorum, fakat değer çarpanının çarpanını da 1'e ayarlayabileceğinizi ve 0-100 arası değerler ile çalışabildiğinizi düşünüyorum.

Tek tek çubukların biçimlendiricisini değiştirmek için DataSet öğesinin değerini değiştirmeniz gerekir.

+0

Çalıştığınız için teşekkür ederiz. Ama sorun şu ki, çubuğun sağ tarafında gösterdiğim Değerlerin% değerini göstermem gerekiyor. Bu biçimlendirici ve bu NSNumberFormatter * formater = [[NSNumberFormatter alloc] init] gibi değerleri geçirdim; formater.numberStyle = NSNumberFormatterPercentStyle; _graphContainerView.rightAxis.valueFormatter = formater; –

+0

Efendim Soruyu değiştirdim ve sonucumu ekledim. Lütfen bu sorunu nasıl ele alacağımı lütfen bana bildirin –

+0

Yine de test edemiyorsunuz, ancak DataSet değerinin (set1 ve set2 durumunuzda) değerini değiştirirseniz muhtemelen işe yarayacaktır. – creativ

İlgili konular