私はダニエルチャートライブラリを使用しています。単純なバーグラフのxAxis値を新しいライブラリで変更したためにxValuesを設定できないため、xValuesを文字列として設定する前のコードが表示されますが、コードは同じに設定できません。Daniel Chartを使用して、X値を棒グラフビューのX軸に設定する方法は?
旧コード:はxValuesとbarchartdataを設定すなわち最後の行を確認してください。
- (void)setDataCount:(int)count range:(float)range
{
NSArray *tempXvals = [self.graphDict valueForKey:@"xVals"];
NSArray *xvals = [[tempXvals reverseObjectEnumerator]allObjects];
NSMutableArray *xVals;
if ([xvals count]>0) {
xVals = [[NSMutableArray alloc] initWithArray:xvals];
}
else
{
xVals = [[NSMutableArray alloc] init];
}
NSArray *tempYvals = [self.graphDict valueForKey:@"yVals"];
NSArray *yvals = [[tempYvals reverseObjectEnumerator]allObjects];
NSMutableArray *yVals = [[NSMutableArray alloc] init];
int xValsCount = [xVals count];
for (int i = 0; i < xValsCount; i++)
{
int val = [[yvals objectAtIndex:i]integerValue];
[yVals addObject:[[BarChartDataEntry alloc]initWithValue:(val) xIndex:i]];
}
NSString *graphTitle = [self.graphDict valueForKey:@"title"];
BarChartDataSet *set1;
if (graphTitle != nil) {
set1 = [[BarChartDataSet alloc] initWithYVals:yVals label:graphTitle];
}
graphTitle = nil;
NSMutableArray *dataSets = [[NSMutableArray alloc]init];
[dataSets addObject:set1];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
formatter.minimumFractionDigits = 0;
BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:dataSets];
新しいコード:新しいライブラリでだけxvaluesを渡す方法use.butデータセット。
- (void)setDataCount:(int)count range:(double)range
{
double start = 1.0;
NSMutableArray *yVals = [[NSMutableArray alloc] init];
for (int i = start; i < start + count + 1; i++)
{
double mult = (range + 1);
double val = (double) (arc4random_uniform(mult));
[yVals addObject:[[BarChartDataEntry alloc] initWithX:(double)i y:val]];
}
BarChartDataSet *set1 = nil;
if (_chartView.data.dataSetCount > 0)
{
set1 = (BarChartDataSet *)_chartView.data.dataSets[0];
set1.values = yVals;
[_chartView.data notifyDataChanged];
[_chartView notifyDataSetChanged];
}
else
{
set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@"The year 2017"];
[set1 setColors:ChartColorTemplates.material];
NSMutableArray *dataSets = [[NSMutableArray alloc] init];
[dataSets addObject:set1];
BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
[data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:10.f]];
data.barWidth = 0.9f;
_chartView.data = data;
}
}
私は同じことを言いますが、結果が異なります。更新に関する質問をご覧ください。そこにリンクがあります。 – ashmi123