如何在 ios 图表中将 % 添加到 Y 轴 values/labels?

How to add % to Y axis values/labels in ios Charts?

我正在使用 IOS 图表绘制水平条形图,其中 2 y-values.I 要求在条形旁边显示的两个 y 值中添加“%”符号,甚至在 Y 轴(RightAxis)上如何做到这一点?这是我的图表图像[我绘制的水平条形图][1]我正在使用 objective-C 但使用 Swift 框架绘制此图。这是我使用的图表 link https://github.com/danielgindi/Charts

我按照 creativ

的建议将这条底线添加到我的代码中
NSNumberFormatter *formater = [[NSNumberFormatter alloc] init];
formater.numberStyle = NSNumberFormatterPercentStyle;

_graphContainerView.rightAxis.valueFormatter = formater;

但问题是我在每个条形旁边获取值作为小数点,如下图所示,但我希望它们也以百分比值显示,这是我的代码

-(void)setDataForXAxis:(NSMutableArray*)xVals benchMarkValues:(NSMutableArray*)benchMarkVals 百分比值:(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;

}

您可以更改 y 轴的 valueFormatter 以包含 % 符号。 例如。将 valueFormatter 设置为自定义 NSNumberFormatter,并将 numberStyle 设置为 NSNumberFormatterPercentStyle。

请注意,您可能需要将值更改为 0-1 之间的值,而不是 0-100。我现在无法对其进行测试,但我认为您还可以将 valueFormatter 的乘数设置为 1,它应该可以使用 0-100 之间的值。

为了更改各个条的格式化程序,您需要更改 DataSet 的 valueFormatter。