Hi,
I am trying to achieve what is shown in the attachment (3D Chart.png).
Following are the features of the attached chart I want:
1. 3D
2. Individual vertical lines
3. Lines have color-range applied (from the legend)
I tried and found that (My Chart.png):
1. 3D - It is achievable
2. Individual vertical lines - There is no such support in the chart. There is "Point 3D", but the lines are connected. I want individual vertical lines.
3. Lines have color-range applied (from the legend) - When any type from "Point 3D" is selected, the lines do not show color-range from the legend. The lines are either a one solid color or a pre-defined gradient.
Can you please help me in this?
Looking forward to hear from you.
Thanks a lot!
3D Chart with vertical lines
3D Chart with vertical lines
- Attachments
-
- 3D Chart sample
- 3D Chart.png (325.52 KiB) Viewed 10353 times
-
- My attempt for 3D chart
- My Chart.png (296.88 KiB) Viewed 10339 times
Re: 3D Chart with vertical lines
Hello,
I'm afraid there isn't a series designed to draw such a chart.
However, you could try using one of the current series (ie a TBar3DSeries or a TLineSeries) and use it to get the desired result.
This is the best I could get for the moment with a TBar3DSeries:
Here is still pending to calculate the correct tmpGradient to assign at BarGetBarStyle. This should be calculated from myGradient manually.
I'm afraid there isn't a series designed to draw such a chart.
However, you could try using one of the current series (ie a TBar3DSeries or a TLineSeries) and use it to get the desired result.
This is the best I could get for the moment with a TBar3DSeries:
Code: Select all
uses Bar3D, TeCanvas, Math, TeePNG;
var barRow: array of TBar3DSeries;
var myGradient: TTeeGradient;
procedure TForm1.FormCreate(Sender: TObject);
var i, j: Integer;
tmpUp, tmpDown: Double;
begin
Chart1.Legend.Visible:=false;
Chart1.Aspect.Orthogonal:=false;
Chart1.Chart3DPercent:=20;
Chart1.Aspect.Zoom:=80;
Chart1.Axes.Depth.Visible:=true;
Chart1.Axes.Depth.LabelStyle:=talValue;
Chart1.Axes.Depth.Increment:=2;
Chart1.Axes.Left.SetMinMax(-20, -120);
Chart1.Axes.Left.Increment:=20;
Chart1.Axes.Bottom.SetMinMax(0, 10);
Chart1.Axes.Bottom.Increment:=2;
Chart1.Axes.Bottom.MinimumOffset:=10;
Chart1.Axes.Bottom.MaximumOffset:=10;
myGradient:=TTeeGradient.Create(nil);
with myGradient do
begin
Visible:=true;
Colors.Clear;
Colors.Add(0, RGB(0, 0, 130));
Colors.Add(0.2, RGB(0, 0, 255));
Colors.Add(0.4, RGB(0, 255, 255));
Colors.Add(0.6, RGB(255, 255, 0));
Colors.Add(0.8, RGB(255, 0, 0));
Colors.Add(1, RGB(130, 0, 0));
end;
SetLength(barRow, 10);
for i:=0 to High(barRow) do
begin
barRow[i]:=Chart1.AddSeries(TBar3DSeries) as TBar3DSeries;
with barRow[i] do
begin
Pen.Visible:=false;
BarWidthPercent:=0;
Depth:=0;
Marks.Visible:=false;
MultiBar:=mbNone;
OnGetBarStyle:=BarGetBarStyle;
for j:=0 to 19 do
begin
tmpUp:=-25-random(25);
tmpDown:=-70-random(30);
AddBar(j/2, tmpUp, tmpDown);
end;
end;
end;
end;
procedure TForm1.BarGetBarStyle(Sender:TCustomBarSeries; ValueIndex:Integer;
var TheBarStyle:TBarStyle);
var tmpGradient: TTeeGradient;
begin
tmpGradient:=myGradient;
if Sender is TBarSeries then
(Sender as TBarSeries).Gradient:=tmpGradient;
end;
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |