如何在条形图数据上设置 x 轴 - ios-图表?
How to set x-axis on bar chart data - ios-charts?
之前我们可以设置条形图数据的x轴如下:-
BarChartData *data = [[BarChartData alloc] initWithXVals:xvals dataSets:dataSets];
在最近更新的 ios-charts
库中,语法更改为以下:-
BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
如何在BarChartData
上设置x轴?
您可以使用下面与 IAxisValueFormatter
相同的方法,将 value 作为索引并从 xArray 获取数据并在其中显示您的自定义 X values
。
#pragma mark - IAxisValueFormatter
- (NSString *)stringForValue:(double)value
axis:(ChartAxisBase *)axis
{
NSString *xValue = [xArray objectAtIndex:value];
return xValue;
}
您可以将其用作 IAxisValueFormatter
的委托方法。
希望这对您在图表中设置 xAxis 有所帮助。
借助此 ,我能够在 Objective-C
中的条形图上显示 xAxis 字符串值。
NSMutableArray *xValsDietArray;
设置您的图表数据。基本示例如下:-
for (int i=0; i<dietArray.count; i++) {
DietInput *obj = [dietArray objectAtIndex:i];
NSString *dateStr = @"Jan";
[xValsDietArray addObject:dateStr];//Maintain this xValsDietArray. It will be used later on while setting x values. This contains array of x-axis values
[yvals addObject:[[BarChartDataEntry alloc]initWithX:[[xValsDietArray objectAtIndex:i] doubleValue] y:obj.calorieInput.doubleValue data:xValsDietArray] ];
}
BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithValues:yvals label:@"Water Consumed"];
NSMutableArray *dataSets = [[NSMutableArray alloc] init];
[dataSets addObject:set1];
BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
cell.chartView.data=data;
cell.chartView.xAxis.valueFormatter = self;// Set the delegate to self. THIS IS THE MAIN ADDITION IN NEW CHART LIBRARY
实现stringForValue
委托方法如下:-
- (NSString * _Nonnull)stringForValue:(double)value axis:(ChartAxisBase * _Nullable)axis
{
NSString *xAxisStringValue = @"";
int myInt = (int)value;
if(xValsDietArray.count > myInt)
xAxisStringValue = [xValsDietArray objectAtIndex:myInt];
return xAxisStringValue;
}
之前我们可以设置条形图数据的x轴如下:-
BarChartData *data = [[BarChartData alloc] initWithXVals:xvals dataSets:dataSets];
在最近更新的 ios-charts
库中,语法更改为以下:-
BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
如何在BarChartData
上设置x轴?
您可以使用下面与 IAxisValueFormatter
相同的方法,将 value 作为索引并从 xArray 获取数据并在其中显示您的自定义 X values
。
#pragma mark - IAxisValueFormatter
- (NSString *)stringForValue:(double)value
axis:(ChartAxisBase *)axis
{
NSString *xValue = [xArray objectAtIndex:value];
return xValue;
}
您可以将其用作 IAxisValueFormatter
的委托方法。
希望这对您在图表中设置 xAxis 有所帮助。
借助此 Objective-C
中的条形图上显示 xAxis 字符串值。
NSMutableArray *xValsDietArray;
设置您的图表数据。基本示例如下:-
for (int i=0; i<dietArray.count; i++) {
DietInput *obj = [dietArray objectAtIndex:i];
NSString *dateStr = @"Jan";
[xValsDietArray addObject:dateStr];//Maintain this xValsDietArray. It will be used later on while setting x values. This contains array of x-axis values
[yvals addObject:[[BarChartDataEntry alloc]initWithX:[[xValsDietArray objectAtIndex:i] doubleValue] y:obj.calorieInput.doubleValue data:xValsDietArray] ];
}
BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithValues:yvals label:@"Water Consumed"];
NSMutableArray *dataSets = [[NSMutableArray alloc] init];
[dataSets addObject:set1];
BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
cell.chartView.data=data;
cell.chartView.xAxis.valueFormatter = self;// Set the delegate to self. THIS IS THE MAIN ADDITION IN NEW CHART LIBRARY
实现stringForValue
委托方法如下:-
- (NSString * _Nonnull)stringForValue:(double)value axis:(ChartAxisBase * _Nullable)axis
{
NSString *xAxisStringValue = @"";
int myInt = (int)value;
if(xValsDietArray.count > myInt)
xAxisStringValue = [xValsDietArray objectAtIndex:myInt];
return xAxisStringValue;
}