答えて
一つの方法は、CPTScatterPlotを使用することです:あなたが初期化され、あなたのグラフにあなたのバープロット(または、これまでどのようなあなたの実際のデータプロットがある)を追加した後
はあなたのコードに次の行を追加します。
// Before following code, initialize your data, actual data plot and add plot to graph
CPTScatterPlot *dataSourceLinePlot = [[[CPTScatterPlot alloc] init] autorelease];
CPTMutableLineStyle * lineStyle = [CPTMutableLineStyle lineStyle];
lineStyle.lineWidth = 3.f;
lineStyle.lineColor = [CPTColor blackColor];
lineStyle.dashPattern = [NSArray arrayWithObjects:[NSNumber numberWithFloat:3.0f], [NSNumber numberWithFloat:3.0f], nil];
dataSourceLinePlot.dataLineStyle = lineStyle;
dataSourceLinePlot.identifier = @"horizontalLineForAverage";
dataSourceLinePlot.dataSource = self;
[barChart addPlot:dataSourceLinePlot toPlotSpace:plotSpace];
そして、データソースのメソッドを追加するには、私の場合、私は自分に上記のコードでデータソースを設定しているので、私は同じファイルにデータソースのメソッドを定義しています:
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
{
// Note this method will return number of records for both my actual plot, and for scattered plot which is used to draw horizontal average line. For latter, this will decide the horizontal length of your line
return [myDataArray count];
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSDecimalNumber *num = nil;
// If method is called to fetch data about drawing horizontal average line, then return your generated average value.
if([email protected]"horizontalLineForAverage")
{
if(fieldEnum == CPTScatterPlotFieldX)
{
// this line will remain as it is
num =(NSDecimalNumber *)[NSDecimalNumber numberWithDouble:index];
}
else
{
num = (NSDecimalNumber *) myDataAverageValue;// Here you generate average value for location of horizontal line. You should edit this line only;
}
}
// handle other cases and return data for other plots
return num;
}
このように文字列を比較することはできません。plot.identifier == @ "horizontalLineForAverage"を[plot.identifier isEqual:@ "horizontalLineForAverage"]に変更します。 –
@AndrewSコンパイラは同じ文字列への参照を一意にします。この回答を参照してください:http://stackoverflow.com/questions/3703554/understanding-nsstring-comparison –
私は同じ開始点と終了点を共有するプロットを等しく扱うので、これはEricのアプローチに比べて好きです。これらの点が変化すると、平均線が続きます。 –
はい。グラフに散布図を追加し、2つのデータ点、つまり目的の線の両端に1つのデータ点を与えます。これを行うための
こんにちは@Eric Skroch私はこの行を理解していないnum =(NSDecimalNumber *)myDataAverageValue;私はいくつかの例を教えてくれるでしょう、私はmyDataAverageValueで置き換えることができます。ありがとう.. – Warewolf
プロットのY値で、NSDecimalNumberでエンコードされています。 –
CPTFill *bandFill = [CPTFill fillWithColor:[[CPTColor blackColor] colorWithAlphaComponent:1]];
[y addBackgroundLimitBand:[CPTLimitBand limitBandWithRange:[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(800) length:CPTDecimalFromDouble(1.5)] fill:bandFill]];
と
-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
if (self.segment.selectedSegmentIndex == 2) {
if (coordinate == CPTCoordinateY) {
//NSLog(@"%f=>%f",self.yRange.lengthDouble,newRange.lengthDouble);
CPTGraph* graph = space.graph;
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *y = axisSet.yAxis;
NSArray *bands = y.backgroundLimitBands;
for (CPTLimitBand *band in bands) {
[y removeBackgroundLimitBand:band];
}
CPTFill *bandFill = [CPTFill fillWithColor:[[CPTColor blackColor] colorWithAlphaComponent:1]];
[y addBackgroundLimitBand:[CPTLimitBand limitBandWithRange:[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(800) length:CPTDecimalFromDouble(1.5 * newRange.lengthDouble/1200)] fill:bandFill]];
}
}
return newRange;
}
公式のサンプル "Plot_Gallery_iOS"の "AxisDemo"セクションを参照してください
- 1. Chart.js水平線グラフまたは修正された水平棒グラフ
- 2. matplotlibのチャート - 水平棒グラフ
- 3. Qt:3D水平棒グラフ
- 4. ソート水平棒グラフD3js
- 5. 水平棒グラフ(Chart.js 2)の上部水平線を削除します。
- 6. pandasとmatplotlibを使った棒グラフの上の平均線
- 7. matplotlibの水平棒グラフの注釈
- 8. Excel - 各バーの水平基準線付き棒グラフ
- 9. Silverlightツールキットの縦棒グラフに水平線を追加する
- 10. Chart.js - 棒グラフの水平線がツールチップと干渉する
- 11. 棒グラフ、水平使用してmatplotlibの
- 12. Chart.js - 棒グラフ(タイプバー)で水平線を描く
- 13. C#各積み上げ縦棒グラフに水平線を描く
- 14. 棒グラフに水平線を描く方法Chartjs
- 15. 棒グラフ内のテキストを含むハイチャート水平棒グラフ
- 16. 棒グラフを水平に表示
- 17. d3 js双方向水平棒グラフ
- 18. 水平棒グラフ(できればアニメーション)react.js
- 19. Extra Line in MpAndroid水平棒グラフ
- 20. ggplot2を使った水平棒グラフ
- 21. D3水平棒グラフ正確なコピー
- 22. 平均の水平線数がggplot2のR
- 23. 平均のチャート上のタブロー平均線
- 24. グラフJs V2描画水平バー(平均)垂直バー上
- 25. 水平線グラフと一致するR
- 26. Sapui5水平線
- 27. SSRSで棒グラフに平均棒を追加するには
- 28. コメントの水平線
- 29. ジャンボトロンの水平線
- 30. y軸の値を表示する水平線を描く棒グラフ
私は答えが提供されていない質問があるので... – dorin
あなたは正しいです、私はあなたの質問を見て、あなたが非常に不幸に思った。 –