我需要用 tpointseries 创建一个恐怖系列,就像这个链接中出现的那样:http ://www.teechart.net/support/viewtopic.php?p=46388
在每个“X”中都会有一些错误序列,但它们需要为每个 XValue 并排绘制。我设法把错误系列,但我怎么能把指针不重叠???
我发现了类似的东西:“有一个 XValues 0、1、2、...的 TErrorSeries,ErrorBar 完全绘制在 X=0、X=1、...但是当你有两个 TErrorSeries 时,它们被绘制一个紧挨着另一个,所以第一个在 X=0, X=1,... 的左侧绘制了一些像素,第二个 TErrorSeries 在 X=0, X=1,.. 的右侧绘制了一些像素. 这是为了适应尽可能多的 TErrorSeries 而不重叠。另一方面,TPointSeries 不做这项工作。他们不会阻止这种重叠。所以,在继续向您提出解决方法之前,我们需要知道您是否希望您的 TErrorSeries 重叠,或者您希望它们为每个 XValue 并排绘制。”
我需要并排绘制,有人可以帮助我吗?
我按照您的建议放置了代码,但仍然继续在 X 轴上重叠的系列(我希望系列并排放置)
procedure TForm1.BtnGraphClick(Sender: TObject);
var
i, j : Integer;
Series1 : TErrorPointSeries;
x, y : Double;
Top, Bottom : Double;
max, min, k :array of array of integer;
ndecisor, ncri: integer;
begin
//Atribuindo valores na Matriz MAX, MIN, K
SetLength(Max, 3, 3);
max[0,0]:= 9;
max[0,1]:= 12;
max[0,2]:= 14;
max[1,0]:= 10;
max[1,1]:= 8;
max[1,2]:= 13;
max[2,0]:= 11;
max[2,1]:= 7;
max[2,2]:= 10;
SetLength(Min, 3, 3);
min[0,0]:= 2;
min[0,1]:= 0;
min[0,2]:= 3;
min[1,0]:= 3;
min[1,1]:= 1;
min[1,2]:= 4;
min[2,0]:= 1;
min[2,1]:= 2;
min[2,2]:= 0;
SetLength(k, 3, 3);
k[0,0]:= 5;
k[0,1]:= 8;
k[0,2]:= 4;
k[1,0]:= 7;
k[1,1]:= 5;
k[1,2]:= 6;
k[2,0]:= 6;
k[2,1]:= 7;
k[2,2]:= 5;
ndecisor:=3;
ncri:=3;
ErrorPointChart.View3D:=False;
ErrorPointChart.Axes.Left.MinimumOffset:=1;
ErrorPointChart.Axes.Left.MaximumOffset:=1;
for i := 0 to ndecisor -1 do
begin
Series1:=TErrorPointSeries.Create(ErrorPointChart);
Series1.Pen.Width:=3;
ErrorPointChart.AddSeries(Series1);
Randomize;
for j := 0 to ncri -1 do
begin
x:=j;
y:=k[j,i];;
Top:= max[j,i]-k[j,i];
Bottom:= k[j,i]-min[j,i];
Series1.Add(x,y,0,0,Top,Bottom);
end;
end;
end;