簡體   English   中英

如何在條形圖數據上設置x軸 - ios-charts?

[英]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軸?

在本答案(swift版本)的幫助下,我能夠在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;
}

您可以使用以下相同的IAxisValueFormatter方法, IAxisValueFormatter 作為索引並從xArray獲取數據並在其中顯示自定義X values

#pragma mark - IAxisValueFormatter

- (NSString *)stringForValue:(double)value
                        axis:(ChartAxisBase *)axis
{
    NSString *xValue = [xArray objectAtIndex:value];
    return xValue;
}

您可以將其用作IAxisValueFormatter委托方法。

希望這可以幫助您在圖表中設置xAxis。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM