在iPhone中使用powerplot创建折线图

时间:2011-08-11 07:24:18

标签: iphone ios xcode graph

我正在使用powerplot在iphone中创建动态图表。通过http://www.field-theory.org/articles/powerplot/example.html我成功创建了一个图表,但我不知道如何删除图表中的默认dec值。 enter image description here

我想在下面创建这样的东西,我从mockapps构思。

float sourceData[7] = {33, 17, 24, 11, 11, 4, 10};
    self.allData = [WSData dataWithValues:[WSData arrayWithFloat:sourceData withLen:7]];
self.allData = [self.allData indexedData];

WSChart *tmp;
tmp = [WSChart linePlotWithFrame:[aView frame]
                                 withData:self.allData
                                 withStyle:kChartLineFilled
                                 withAxisStyle:kCSGrid
                                 withColorScheme:kColorGray
                                 withLabelX:@"Days"
                                 withLabelY:@"Drinks"];
             [aView removeAllPlots];
             [aView addPlotsFromChart:tmp];

[aView scaleAllAxisYD:NARangeMake(-10, 45)];
[aView setAllAxisLocationYD:0];
[aView setAllAxisLocationXD:-0.5];  


WSPlotAxis *axis = [aView getPlotAxis];

[[axis ticksX] setTicksStyle:kTicksLabels];
[[axis ticksY] setTicksStyle:kTicksLabels];
[[axis ticksY] ticksWithNumbers:[NSArray arrayWithObjects:
                                 [NSNumber numberWithFloat:0],
                                 [NSNumber numberWithFloat:10],
                                 [NSNumber numberWithFloat:20],
                                 [NSNumber numberWithFloat:20],
                                 nil]
                     withLabels:[NSArray arrayWithObjects:@"",
                                 @"10%", @"20%", @"30%", nil]];

[axis.ticksX setTickLabelsWithStrings:[NSArray arrayWithObjects:@"Mon", @"Tue", @"Wed",
                                       @"Thur", @"Fri", @"Sat", @"Sun", nil]];



[aView setNeedsDisplay];

感谢任何评论,谢谢:)

enter image description here

1 个答案:

答案 0 :(得分:2)

linePlotWithFrame:... WSChart方法在绘图堆栈上生成WSPlotAxis的两个独立实例。第一个例子仅用于网格,第二个用于轴标记和标签。

方法WSPlotAxis *axis=[aView getPlotAxis]将返回类型WSPlotAxis的第一个视图,该视图最初没有任何刻度标签。如果要手动更改现有轴刻度和标签,则需要使用

获取第二个实例
WSPlotAxis *axis = (WSPlotAxis *)[self.chart plotAtIndex:2].view;

而不是WSPlotAxis *axis=[aView getPlotAxis];

然后它将按预期工作。