2 个 y 轴不同但 x 轴相同但范围不同的核心图
Posted
技术标签:
【中文标题】2 个 y 轴不同但 x 轴相同但范围不同的核心图【英文标题】:2 core-plot graphs with different y axes but the same x axis but with different ranges 【发布时间】:2015-05-12 07:01:04 【问题描述】:我有 2 个数据集,它们都使用 x 轴上的日期范围。一个有整个日期范围的数据,而另一个只有 范围的一部分。 (它们在左右使用独立的 y 轴,效果很好。)例如:
-
131 个数据点发生在 2015 年 1 月 1 日到 2015 年 5 月 1 日之间
从 2015 年 4 月 15 日到 2015 年 5 月 1 日发生的 10 个数据点
我希望仅在日期的上限范围内绘制与 #2 叠加的图。
我目前根据 #1 中的 131 个数据点自行为 x 轴创建数据标签。
由于#2 只有 10 个数据点,我需要将其映射到 x 轴上 131 个位置中与其日期对应的 10 个位置。我在 numberForPlot 中使用了一个数组,该数组包含 #2 的 10 个数据点与 #1 设置的正确 x 轴位置之间的映射。
if ([(NSString *)plot.identifier isEqualToString:@"Pounds"])
switch (fieldEnum)
case CPTScatterPlotFieldX:
return [NSNumber numberWithUnsignedInteger:self.xAxisMapping[index]];
break;
case CPTScatterPlotFieldY:
PlotData *pd = (PlotData *)self.plotIDToPlotData[plot.identifier];
if (pd != nil)
NSLog(@"CPTScatterPlotFieldY. index: %lu returning: %f\n", (unsigned long)index, [pd yValue:index]);
return([NSNumber numberWithDouble:[pd yValue:index]]);
default:
break;
几乎没有关于 CPTScatterPlotFieldX 枚举的文档,但我的假设是我应该根据数据点的数量获取索引参数并返回 x 轴上的实际位置。这正是我所需要的,而且似乎是一个合乎逻辑的设计。
问题是,它不起作用; #2 的绘图仍会扩展以适应整个 x 轴范围。
有人可以帮忙吗?这一定是一个常见问题,其中 2 个图表共享 x 轴但没有相同数量的数据点或仅部分覆盖定义的 x 轴范围。
【问题讨论】:
【参考方案1】:嗯,我在 numberForPlot 上走在了正确的轨道上。我通过不为#2 调用 scaleToFitPlots 解决了这个问题。这引入了另一个问题,尽管正确设置了 y 范围,但 y 轴范围远大于应有的范围,这会将绘图压到底部。
【讨论】:
全部修复。设置 Y 范围时的愚蠢拼写错误以上是关于2 个 y 轴不同但 x 轴相同但范围不同的核心图的主要内容,如果未能解决你的问题,请参考以下文章
我有 2 个不同的条形图,它们有一个共同的 X 轴和 2 个不同的 Y 轴。我想使用 python 将这两个使用 X 轴的图合并为一个