ShinobiCharts 样式/数据顺序问题

ShinobiCharts styling / order of data issues

我想问一些图表样式和数据问题。我的图表目前看起来像这样:

我想在图表周围添加圆角边框,我尝试使用以下代码无济于事:

_chart.layer.cornerRadius = 10.0;

_chart.layer.borderWidth = 0.7;

_chart.layer.borderColor = [UIColorwhiteColor].CGColor;

我也想给条形图添加标签以指示它们的值,但不知道该怎么做。

我的最后一个问题是关于图表中的数据。尽管具有正确顺序的数据结构,但数据在顺序方面显得杂乱无章(应显示为 M T W TH F S SU)。我的数据结构是:

_sales[0] = @{@"M" : @1.6, @"T" : @5.6, @"W" : @10.6, @"TH" : @12.6, @"F" : @15.6, @"S" : @3.6, @"Su" : @4.6};

并按以下方式使用:

- (id<SChartData>)sChart:(ShinobiChart *)chart dataPointAtIndex:(NSInteger)dataIndex forSeriesAtIndex:(NSInteger)seriesIndex {

    SChartDataPoint *datapoint = [[SChartDataPointalloc] init];

    NSString* key = _sales[seriesIndex].allKeys[dataIndex];

    datapoint.xValue = key;

    datapoint.yValue = _sales[seriesIndex][key];

    return datapoint;

}

如有任何建议或意见,我们将不胜感激,在此先致谢!

免责声明:我为 ShinobiControls 工作

图表边框

您可以使用 borderThickness 而不是 layer.borderWidth,您可以使用 borderColor 而不是 layer.borderColor

我测试时,以下内容对我有用:

_chart.borderColor = [UIColor redColor];
_chart.borderThickness = @(5);
_chart.layer.cornerRadius = 10.0;

数据点标签

您可以打开数据点标签并通过从数据源返回的系列控制它们的样式:

series.style.dataPointLabelStyle.showLabels = YES;

数据顺序

您提到您的数据结构是 "in the correct order",但不幸的是,这并不完全正确。您使用的 NSDictionary 不保证顺序。当您在 NSDictionary 上调用 allKeys 时,返回的数组不一定按顺序排列。根据 allKeysNSDictionary API documentation

The order of the elements in the array is not defined.

为了解决这个问题,您需要切换到保证顺序的数据结构。

希望以上信息有用!

注意: 原文post中有很多不同的问题,所以这个回复包含了几个答案。我不太确定 editing/splitting 关于 SO 的问题的礼仪是什么,所以我就不管它了。如果有人遇到这个问题并按照这些思路提出建议,请随时进行编辑或添加评论等。