【问题标题】:Initialize the default zoom初始化默认缩放
【发布时间】:2013-11-27 10:40:44
【问题描述】:

当我的散点图出现时,我看到:

但我想这样做:

在图表加载后,我希望用户看到一个显示所有数据的图表,而不仅仅是第一个屏幕截图中的一小块。如何定义原始的“缩放”?

编辑:(这是我的代码)

[...]
CPTGraph *graph = self.hostView.hostedGraph;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;

CPTScatterPlot *myPlot = [[CPTScatterPlot alloc] init];
myPlot.dataSource = self;
myPlot.delegate = self;
CPTColor *myColor = [CPTColor greenColor];
[graph addPlot:myPlot toPlotSpace:plotSpace];
myPlot.plotSymbolMarginForHitDetection = 10.0f;

[plotSpace scaleToFitPlots:[NSArray arrayWithObject:myPlot]];
CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy];
[xRange expandRangeByFactor:CPTDecimalFromCGFloat(DynamicValue)];
plotSpace.xRange = xRange;
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy];
[yRange expandRangeByFactor:CPTDecimalFromCGFloat(DynamicValue)];
plotSpace.yRange = yRange;
[...]

【问题讨论】:

    标签: ios iphone ios7 core-plot


    【解决方案1】:

    许多 Core Plot 示例应用程序使用 -[CPTPlotSpace scaleToFitPlots:] 将绘图范围调整为绘图数据。如果您已经知道数据范围,则在设置图形时直接设置绘图空间xRange 和/或yRange

    【讨论】:

    • 数据范围并不总是相同的......而且我已经在使用 scaleToFitPlots: 方法。请查看我的问题中的编辑。
    • 什么是DynamicValue?它应该大于一 (1)。此外,请确保在调用 scaleToFitPlots: 时绘图数据在数据源中可用,因为这将强制绘图加载其数据以确定范围。
    • 我设置了一个名为 dynamicValue 的变量,其中包含 UISlider 值供用户调整范围,因为值的数量永远不会相同,有时情节看起来很“压缩”......所以,多亏了这些滑块(一个用于 x 轴,另一个用于 y 轴),用户可以根据需要仅放大一个轴。
    • 哦,好吧!我的问题是有时 dynamicValue 小于 1...例如,当我设置一个像 1.5 这样的常量值时,它的效果很好。再次感谢埃里克。
    • 有没有办法让焦点不在情节上,而是在轴上?我的目标是在视图加载后直接显示一个图形,其中 x 轴位于屏幕底部,y 轴位于屏幕左侧。
    猜你喜欢
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2012-11-29
    • 2020-02-08
    • 1970-01-01
    • 2017-11-21
    • 2015-02-25
    相关资源
    最近更新 更多