我有两个系列,如何同时选择两个系列?基本上,我的图表有2 y值共享相同的x值,我将它们表示为两个系列。我想显示为给定X值选择的两个点。
您好,谢谢您的回复。我在
中这样做- (void)sChart:(ShinobiChart *)chart toggledSelectionForPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series atPixelCoordinate:(CGPoint)pixelPoint
SChartDataPoint* point1Series1 = [chart.datasource sChart:chart dataPointAtIndex:dataPoint.index forSeriesAtIndex:0];
point1Series1.selected = YES;
SChartDataPoint* point1Series2 = [chart.datasource sChart:chart dataPointAtIndex:dataPoint.index forSeriesAtIndex:1];
point1Series2.selected = YES;
当我在这行代码后打印两个点的选定状态时,它们返回1(已选择)但它们似乎在图表上看起来没有选中,只有我在设备上的图表上选择的那个似乎出现虽然我在那之后调用了redrawChart。任何帮助将不胜感激
答案 0 :(得分:2)
我认为可能(我猜是因为我看不到你的代码)你的图表数据源没有返回对作为图表一部分的数据点的引用,而是生成一个新的数据点每次请求一个对象。
为了解决这个问题,您可以通过dataSeries
对象上的SChartSeries
属性从图表本身请求数据点。
以下委托方法应执行您需要的选择。
- (void)sChart:(ShinobiChart *)chart toggledSelectionForPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series atPixelCoordinate:(CGPoint)pixelPoint
{
// Selection details
NSInteger dataPointIndex = dataPoint.index;
BOOL selected = dataPoint.selected;
for (SChartSeries *chartSeries in chart.series) {
// If only one data point in the series can be selected at once, then deselect the rest
if(!series.togglePointSelection && selected) {
for(SChartDataPoint *dp in chartSeries.dataSeries.dataPoints) {
dp.selected = NO;
}
}
// Find the data point and perform the selection
SChartDataPoint *dp = chartSeries.dataSeries.dataPoints[dataPointIndex];
dp.selected = selected;
}
}
希望有所帮助。
答案 1 :(得分:0)
您应该能够在数据点上设置.selected并自定义series.style.selectedPointStyle属性以显示您想要的点:)