条形图中的分组列,使用ios-charts库可变数据条目计数

时间:2015-07-25 19:58:33

标签: ios charts autolayout ios-charts

我正在尝试构建条形图,其中x值的y值可变(例如,对于x = 1,我想要有3个数据条目,对于x = 2 1数据条目等)。

使用ios-charts,问题是该图表由于某种原因错误地放置了条形图。使用我的图表的以下数据源:

    BarChartDataEntry *entry = [[BarChartDataEntry alloc] initWithValues:@[@1] xIndex:0];
    BarChartDataEntry *entry2 = [[BarChartDataEntry alloc] initWithValues:@[@4] xIndex:0];
    BarChartDataSet *set = [[BarChartDataSet alloc] initWithYVals:@[entry,entry2] label:@"test1"];

    BarChartDataEntry *entry3 = [[BarChartDataEntry alloc] initWithValues:@[@6] xIndex:1];
    BarChartDataEntry *entry4 = [[BarChartDataEntry alloc] initWithValues:@[@7] xIndex:1];
    BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithYVals:@[entry3,entry4] label:@"test2"];

    BarChartDataEntry *entry5 = [[BarChartDataEntry alloc] initWithValues:@[@3] xIndex:2];
    BarChartDataSet *set3 = [[BarChartDataSet alloc] initWithYVals:@[entry5] label:@"test3"];

    NSArray *tstArr = @[set, set2, set3];

   //x-values
   <__NSArrayM 0x7a897960>(
   02.júla.15,
   23.júla.15,
   24.júla.15
   )

    BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:tstArr];

生成以下Horizo​​ntalBarChart:

graph

查看文档,我甚至不确定是否可以使用ios-charts。也许自动布局与它有关。如果有经验的人可以贡献,我会很高兴。或者,我可能不得不使用核心情节。

编辑:我发现我的逻辑错了,我创建了堆叠条而不是多条。我将代码更改为

    BarChartDataEntry *entry = [[BarChartDataEntry alloc] initWithValues:@[@1] xIndex:0];
    BarChartDataEntry *entry2 = [[BarChartDataEntry alloc] initWithValues:@[@4] xIndex:0];
    BarChartDataSet *set = [[BarChartDataSet alloc] initWithYVals:@[entry] label:@"test1"];
    BarChartDataSet *set2 = [[BarChartDataSet alloc] initWithYVals:@[entry2] label:@"test2"];

    BarChartDataEntry *entry3 = [[BarChartDataEntry alloc] initWithValues:@[@6] xIndex:1];
    BarChartDataEntry *entry4 = [[BarChartDataEntry alloc] initWithValues:@[@7] xIndex:1];
    BarChartDataSet *set3 = [[BarChartDataSet alloc] initWithYVals:@[entry3] label:@"test3"];
    BarChartDataSet *set4 = [[BarChartDataSet alloc] initWithYVals:@[entry4] label:@"test4"];

所以我有单个x-point的多个数据集。这样可以更好一点,但图表仍然无法理解我的数据源并将所有内容放入单个x点(请注意黑色选定的列)

chart2

1 个答案:

答案 0 :(得分:1)

这是一个错误,而且,我认为你已经在github上打开了这个问题,对吧?无论如何,您应该能够继续修复:https://github.com/danielgindi/ios-charts/pull/248

如果一个组中有两个条,则应该只有两个dataSets,而不是4个,每个dataSet有两个dataEntries。你使用的是4个数据集,它会为每个x轴区域留下更多的空间,这就是为什么它没有居中。