Shinobi 图表 LineSeries Swift/Obj-C
Shinobi Chart LineSeries Swift/Obj-C
我是 Shinobi Tools 的新手,我有一组点,我想将其连接到一个线系列。我看到 shinobi 以 SChartLineSeries 的形式提供了这个功能。有人能这么好并向 me:D 解释一下吗?我真的没有得到文档。
代码示例会很好!!
这是我目前拥有的
这就是我想要实现的。我有 5 个 x 和 y 值。那些不应该用直线连接。关键词:样条曲线
你读过这个吗:https://www.shinobicontrols.com/ios/shinobicharts/quickstartguide?其实挺好的,就是他们的页面不太好用,一开始我好不容易才找到。
下面的解决方案在 Objective-C 中,但将其转换为 Swift 应该很简单。
简而言之:
首先导入框架:
#import <ShinobiCharts/ShinobiChart.h>
然后创建图表对象和坐标轴:
// in viewDidLoad
ShinobiChart* _chart;
_chart.xAxis = [[SChartNumberAxis alloc] init];
_chart.yAxis = [[SChartNumberAxis alloc] init];
_chart = [[ShinobiChart alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_chart];
然后实现数据源<SChartDatasource>
:
// in viewDidLoad
_chart.datasource = self;
- (int)numberOfSeriesInSChart:(ShinobiChart *)chart {
return 2;
}
-(SChartSeries *)sChart:(ShinobiChart *)chart seriesAtIndex:(int)index {
SChartLineSeries *lineSeries = [[SChartLineSeries alloc] init];
if (index == 0) {
lineSeries.title = [NSString stringWithFormat:@"y = cos(x)"];
} else {
lineSeries.title = [NSString stringWithFormat:@"y = sin(x)"];
}
return lineSeries;
}
- (int)sChart:(ShinobiChart *)chart numberOfDataPointsForSeriesAtIndex:(int)seriesIndex {
return 100;
}
- (id<SChartData>)sChart:(ShinobiChart *)chart dataPointAtIndex:(int)dataIndex forSeriesAtIndex:(int)seriesIndex {
SChartDataPoint *datapoint = [[SChartDataPoint alloc] init];
// both functions share the same x-values
double xValue = dataIndex / 10.0;
datapoint.xValue = [NSNumber numberWithDouble:xValue];
// compute the y-value for each series
if (seriesIndex == 0) {
datapoint.yValue = [NSNumber numberWithDouble:cosf(xValue)];
} else {
datapoint.yValue = [NSNumber numberWithDouble:sinf(xValue)];
}
return datapoint;
}
免责声明:数据源实现来自 link 我在上面介绍的快速入门指南。
-- 编辑--
要曲线图需要自己添加更多的数据点(计算值并设置5个以上的点)。请参阅 Shinobi Chart 支持论坛上的讨论:https://www.shinobicontrols.com/forum/shinobicontrols/2015/6/spline-line-chart。
免责声明:我是 Shinobi Controls 的开发人员。
我们当前的 SChartLineSeries 不支持开箱即用的平滑线。
然而,这是一项经常被要求的功能,因此我们的下一版图表包含的功能可以更轻松地实现平滑线。
与此同时,您可以通过向图表添加更多数据点来获得平滑的线条,为它们提供绘制曲线的数据值。正如 Vive 在她的回答中解释的那样。
我们将在包含此功能的版本发布后更新此 post。
亲切的问候,
安德鲁·波尔金霍恩。
我是 Shinobi Tools 的新手,我有一组点,我想将其连接到一个线系列。我看到 shinobi 以 SChartLineSeries 的形式提供了这个功能。有人能这么好并向 me:D 解释一下吗?我真的没有得到文档。 代码示例会很好!!
这是我目前拥有的
这就是我想要实现的。我有 5 个 x 和 y 值。那些不应该用直线连接。关键词:样条曲线
你读过这个吗:https://www.shinobicontrols.com/ios/shinobicharts/quickstartguide?其实挺好的,就是他们的页面不太好用,一开始我好不容易才找到。
下面的解决方案在 Objective-C 中,但将其转换为 Swift 应该很简单。
简而言之: 首先导入框架:
#import <ShinobiCharts/ShinobiChart.h>
然后创建图表对象和坐标轴:
// in viewDidLoad
ShinobiChart* _chart;
_chart.xAxis = [[SChartNumberAxis alloc] init];
_chart.yAxis = [[SChartNumberAxis alloc] init];
_chart = [[ShinobiChart alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_chart];
然后实现数据源<SChartDatasource>
:
// in viewDidLoad
_chart.datasource = self;
- (int)numberOfSeriesInSChart:(ShinobiChart *)chart {
return 2;
}
-(SChartSeries *)sChart:(ShinobiChart *)chart seriesAtIndex:(int)index {
SChartLineSeries *lineSeries = [[SChartLineSeries alloc] init];
if (index == 0) {
lineSeries.title = [NSString stringWithFormat:@"y = cos(x)"];
} else {
lineSeries.title = [NSString stringWithFormat:@"y = sin(x)"];
}
return lineSeries;
}
- (int)sChart:(ShinobiChart *)chart numberOfDataPointsForSeriesAtIndex:(int)seriesIndex {
return 100;
}
- (id<SChartData>)sChart:(ShinobiChart *)chart dataPointAtIndex:(int)dataIndex forSeriesAtIndex:(int)seriesIndex {
SChartDataPoint *datapoint = [[SChartDataPoint alloc] init];
// both functions share the same x-values
double xValue = dataIndex / 10.0;
datapoint.xValue = [NSNumber numberWithDouble:xValue];
// compute the y-value for each series
if (seriesIndex == 0) {
datapoint.yValue = [NSNumber numberWithDouble:cosf(xValue)];
} else {
datapoint.yValue = [NSNumber numberWithDouble:sinf(xValue)];
}
return datapoint;
}
免责声明:数据源实现来自 link 我在上面介绍的快速入门指南。
-- 编辑--
要曲线图需要自己添加更多的数据点(计算值并设置5个以上的点)。请参阅 Shinobi Chart 支持论坛上的讨论:https://www.shinobicontrols.com/forum/shinobicontrols/2015/6/spline-line-chart。
免责声明:我是 Shinobi Controls 的开发人员。
我们当前的 SChartLineSeries 不支持开箱即用的平滑线。
然而,这是一项经常被要求的功能,因此我们的下一版图表包含的功能可以更轻松地实现平滑线。
与此同时,您可以通过向图表添加更多数据点来获得平滑的线条,为它们提供绘制曲线的数据值。正如 Vive 在她的回答中解释的那样。
我们将在包含此功能的版本发布后更新此 post。
亲切的问候,
安德鲁·波尔金霍恩。