私はTAreaSeries
このようなデータでいっぱいです:
このコードを使用して、グラフに垂直線を描画しています。
procedure TfrmDistributionChart.dbcDistributionAfterDraw(Sender: TObject);
var
XPos: Integer;
begin
dbcDistribution.Canvas.Pen.Width := 3;
dbcDistribution.Canvas.Pen.Color := clBlack;
XPos := dbcDistribution.BottomAxis.CalcPosValue(0);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
dbcDistribution.Canvas.Pen.Color := clBlue;
XPos := dbcDistribution.BottomAxis.CalcPosValue(-SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
XPos := dbcDistribution.BottomAxis.CalcPosValue(SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
dbcDistribution.Canvas.Pen.Color := clGreen;
XPos := dbcDistribution.BottomAxis.CalcPosValue(-2 * SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
XPos := dbcDistribution.BottomAxis.CalcPosValue(2 * SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
dbcDistribution.Canvas.Pen.Color := clRed;
XPos := dbcDistribution.BottomAxis.CalcPosValue(-3 * SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
XPos := dbcDistribution.BottomAxis.CalcPosValue(3 * SD);
dbcDistribution.Canvas.DoVertLine(XPos, dbcDistribution.LeftAxis.IStartPos,
dbcDistribution.LeftAxis.IEndPos);
end;
シリーズの色を外側の境界線の色と一致するように変更したいと思います(たとえば、中央のスライスは青、中央のスライスは緑、最も外側のスライスは赤)。これはTeeChartStandardv2011.03.32815 32ビットVCLで可能ですか?
また、垂直線が描かれている領域を超えて拡大しないようにするために、垂直線をトリミングする正しい方法を見つけることができませんでした。これらの7本の線のそれぞれの適切な高さをどのように計算する必要がありますか?