2016-04-08 21 views
1

私は2つのy値を持つ横棒グラフをプロットするためにIOSチャートを使用しています。棒の横に表示される両方のy値に「%」記号を追加する必要があります.Y軸(RightAxis)どうやってするか ?私のグラフ画像[私が描いた横棒グラフ] [1]そして私はこのプロットをobjective-Cを使って描いていますが、Swiftフレームワークを使っています。私はCREATIViosのグラフでY軸の値/ラベルに%を追加する方法は?

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

_graphContainerView.rightAxis.valueFormatter = formater; 

の助言しかし、問題は、私は小数点として各バーの横に値を取得していているように私のコードには、この一番下の行を追加したここで私はhttps://github.com/danielgindi/Charts

を使用しているグラフのリンクがあります下の画像に示されているが、私はパーセント値でも、それらをしたいとここに私のコードです

- (無効)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; 

}

答えて

2

あなた%シンボルを含むように、Y軸のvalueFormatterを変更することができます。 など。 valueFormatterをカスタムNSNumberFormatterに設定し、numberStyleをNSNumberFormatterPercentStyleに設定します。

値を0-100ではなく0-1の値に変更する必要がある場合があることに注意してください。私は今、それをテストすることはできませんが、私はまた、1にvalueFormatterの乗数を設定することができると思う0から100の間の値で動作するはずです。

個々のバーのフォーマッタを変更するには、DataSetのvalueFormatterを変更する必要があります。

+0

ありがとうございました。しかし問題は、バーの右側に表示されている値に%値を表示しなければならないことです。私はそのフォーマッタを使用し、このような値を渡します。NSNumberFormatter * formater = [[NSNumberFormatter alloc] init]; formater.numberStyle = NSNumberFormatterPercentStyle; _graphContainerView.rightAxis.valueFormatter = formater; –

+0

私は自分の質問を修正し、結果を追加しました。だから私にこの問題を処理する方法を教えてください –

+0

まだテストすることはできませんが、DataSetのvalueFormatter(あなたのケースのset1とset2でも)を変更するとうまくいくはずです。 – creativ

関連する問題