- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
调用 scaleToFitPlots 后,我的 X 轴缩放正确,但我的 Y 轴太高了。附上两张截图,第一张:原图,第二张:我向下滚动后。
我希望图表在绿色框中完全可见(从 Y=0 到 Y=MAX)。在 iPhone、iPad 上,我得到了错误的 Y 轴缩放。
出于某种原因,它认为 plotArea 比实际高度高?
我的图形配置代码片段:
-(void)configureGraph {
CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:self.hostView.bounds];
graph.plotAreaFrame.borderLineStyle = nil;
self.hostView.hostedGraph = graph;
//Controls padding between frame & draw
[graph.plotAreaFrame setPaddingTop:20.0f];
[graph.plotAreaFrame setPaddingRight:20.0f];
[graph.plotAreaFrame setPaddingBottom:20.0f];
[graph.plotAreaFrame setPaddingLeft:30.0f];
//Controls padding between frame and graph (graph is wrapper)
graph.paddingLeft = 0.0;
graph.paddingTop = 0.0;
graph.paddingRight = 0.0;
graph.paddingBottom = 0.0;
// 5 - Enable user interactions for plot space
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
plotSpace.allowsUserInteraction = YES;
}
-(void)scaleToFitPlot
{
CPTGraph *graph = [self getGraph];
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
[plotSpace scaleToFitPlots:[NSArray arrayWithObjects:self.meterPlot, nil]];
}
-(void)configurePlots {
// 1 - Get graph and plot space
CPTGraph *graph = self.hostView.hostedGraph;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
// 2 - Create the three plots
meterPlot = [[CPTScatterPlot alloc] init];
meterPlot.dataSource = self;
meterPlot.identifier = MYMSymbolHourly;
// Set plot delegate, to know when symbols have been touched
// We will display an annotation when a symbol is touched, but this can be another graph!
meterPlot.delegate = self;
meterPlot.plotSymbolMarginForHitDetection = 5.0f;
//CPTColor *meterColor = [CPTColor greenColor];
CPTColor *meterColor = [self orangeClr];
[graph addPlot:meterPlot toPlotSpace:plotSpace];
// 3 - Set up plot space
printf("\nset initialscale");
//[plotSpace scaleToFitPlots:[NSArray arrayWithObjects:meterPlot, nil]];
[self scaleToFitPlot];
CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy];
//[xRange expandRangeByFactor:CPTDecimalFromCGFloat(1.1f)];
plotSpace.xRange = xRange;
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy];
//[yRange expandRangeByFactor:CPTDecimalFromCGFloat(1.2f)];
plotSpace.yRange = yRange;
// 4 - Create styles and symbols
CPTMutableLineStyle *meterLineStyle = [meterPlot.dataLineStyle mutableCopy];
meterLineStyle.lineWidth = 2.5;
meterLineStyle.lineColor = meterColor;
meterPlot.dataLineStyle = meterLineStyle;
CPTMutableLineStyle *meterSymbolLineStyle = [CPTMutableLineStyle lineStyle];
meterSymbolLineStyle.lineColor = meterColor;
CPTPlotSymbol *meterSymbol = [CPTPlotSymbol ellipsePlotSymbol];
meterSymbol.fill = [CPTFill fillWithColor:meterColor];
meterSymbol.lineStyle = meterSymbolLineStyle;
meterSymbol.size = CGSizeMake(6.0f, 6.0f);
meterPlot.plotSymbol = meterSymbol;
}
-(void)configureAxes {
// 1 - Create styles
CPTMutableTextStyle *axisTitleStyle = [CPTMutableTextStyle textStyle];
axisTitleStyle.color = [self grey222Clr];
axisTitleStyle.fontName = @"Helvetica-Bold";
axisTitleStyle.fontSize = 12.0f;
CPTMutableLineStyle *axisLineStyle = [CPTMutableLineStyle lineStyle];
axisLineStyle.lineWidth = 2.0f;
axisLineStyle.lineColor = [self axisGreyClr];
CPTMutableTextStyle *xAxisTextStyle = [[CPTMutableTextStyle alloc] init];
xAxisTextStyle.color = [self grey222Clr]; // This is causing that line bug on y axis
xAxisTextStyle.fontName = @"Helvetica-Bold";
xAxisTextStyle.fontSize = 10.0f;
CPTMutableLineStyle *tickLineStyle = [CPTMutableLineStyle lineStyle];
tickLineStyle.lineColor = [self axisGreyClr];
tickLineStyle.lineWidth = 2.0f;
CPTMutableLineStyle *gridLineStyle = [CPTMutableLineStyle lineStyle];
gridLineStyle.lineColor = [self axisGreyClr];
gridLineStyle.lineWidth = 2.0f;
gridLineStyle.dashPattern = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.8f], nil];
gridLineStyle.patternPhase=0.0f;
// 2 - Get axis set
CPTXYAxisSet *axisSet = (CPTXYAxisSet *) self.hostView.hostedGraph.axisSet;
// 3 - Configure x-axis
CPTAxis *x = axisSet.xAxis;
x.title = [self getXAxisTitleForChart];
x.titleTextStyle = axisTitleStyle;
x.titleOffset = 15.0f;
x.axisLineStyle = axisLineStyle;
x.labelingPolicy = CPTAxisLabelingPolicyNone;
x.labelTextStyle = xAxisTextStyle;
x.majorTickLineStyle = axisLineStyle;
x.majorTickLength = 4.0f;
x.tickDirection = CPTSignNegative;
x.majorGridLineStyle = gridLineStyle;
[self setXAxisLabels];
CPTMutableTextStyle *yAxisTextStyle = [[CPTMutableTextStyle alloc] init];
yAxisTextStyle.color = [self orangeClr];
yAxisTextStyle.fontName = @"Helvetica-Bold";
yAxisTextStyle.fontSize = 11.0f;
// 4 - Configure y-axis
CPTAxis *y = axisSet.yAxis;
y.title = @"Usage kWh";
y.titleTextStyle = axisTitleStyle;
y.titleOffset = -46.0f;
y.axisLineStyle = axisLineStyle;
y.majorGridLineStyle = gridLineStyle;
y.labelingPolicy = CPTAxisLabelingPolicyNone;
y.labelTextStyle = yAxisTextStyle;
y.labelOffset = 30.0f;
y.majorTickLineStyle = axisLineStyle;
y.majorTickLength = 4.0f;
y.minorTickLength = 2.0f;
y.tickDirection = CPTSignPositive;
[self setYAxisLabels];
}
最佳答案
第一个图像显示了 -scaleToFitPlots:
的正确结果。它计算精确包含 x 和 y 绘图数据的绘图范围。如果您已经知道所需的 y 范围(例如,Y=0 到 Y=MAX),那么直接设置即可。如果只想缩放 x 轴,请调用 -scaleToFitPlots:
,然后设置 yRange
。
关于objective-c - 核心情节规模以适应情节问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871120/
我正在尝试缩放 :before我的内容 到目前为止,悬停时会应用样式,但没有视觉变化,:before保持相同的比例。 到目前为止我得到了什么: 12 SASS(CSS): .c
我正在使用 CGAffineTransformMake 转换 View 。它可以旋转、缩放和平移。这很好用。但我无法找到一种方法将比例限制为最大尺寸。 如果超出比例,我仍然需要应用当前的旋转和平移。
我想知道当我无法访问存储它的实际硬盘时是否有办法确定我的 svn repo 的大小?我之所以这么问,是因为我们的项目托管在谷歌代码上。有 1GB 的限制。我怀疑我们是否接近它,但我真的不知道并且想密切
抱歉,我已经花了大约 5 个小时来研究这个问题,但无法弄清楚发生了什么。我正在玩 http://bl.ocks.org/mbostock 上的一些示例网站并尝试向堆积条形图添加图例。 为此,我设置了比
我正在使用这个: var response = client.Search(s => s.Query(q => q.Ids(c => c.Values(new List(tempDictionary.
我想扩展一个 wildfly 容器,该容器暴露了多个端口并具有确定性结果。 docker-compose.yml version: '3' services: wildfly-server:
我目前正在使用 Linode 来部署我的应用程序。我有 2 台服务器,1 台数据库服务器,前面有 1 个负载均衡器。 我使用Redis作为数据库和NowJS来实现聊天室。使用 Pub/Sub 一切正常
在开发过程中,我需要经常更新我的 Web 应用程序源代码并将更新后的 war 部署到远程 Tomcat 服务器。上传一场大战 (25MB) 在我的连接上花费的时间太长(大约 30 分钟),这非常低效。
我有一个在生产中需要 websocket 连接的网络服务器。我使用 docker-compose 和 nginx 作为代理来部署它。 所以我的撰写文件如下所示: version: '2' servic
我的 Web 服务是在 Grails/Gradle 中创建的,其中包含许多依赖项 jar,使得部署在 tomcat8 中的 war 规模很大。有没有什么办法可以让我的 war 使用来自不同位置的依赖项
我是一名优秀的程序员,十分优秀!