I am having problems with sending multiple series to a ternary graph, as follows:
1. My program sends chemistry data to a normal X-Y plot. This data can be grouped by sample (e.g. one data point per series), by sample site (e.g. one of many data points per series) or perhaps grouped by sample date or other parameters.
2. I expected the same facility with a ternary graph - the only difference being that I have to send 3 parameters rather than two, and the graph would auto-calculate the three values as percentages.
3. The program contains extensive code to control colours, symbols and lines used for the series, and I was hoping to be able to use this with ternary graphs.
4. However, when I try to send multiple series to a ternary graph (see attached example project), I obtain multiple graphs nested insides each other.
I am perplexed by this, and would appreciate your urgent attention to this problem.
Thanks and regards
Errol
Ternary Graph Multiple Series
Ternary Graph Multiple Series
- Attachments
-
- TernaryGraph_MultiSeries.zip
- (9.71 KiB) Downloaded 910 times
Re: Ternary Graph Multiple Series
As mentioned here this project seems to be using components we don't have here (TkbmMemTable, TkbmCSVStreamFormat).
If you still find problems with it, could you please arrange example projects using the minimum code to reproduce them and without using 3rd party libraries?
If you still find problems with it, could you please arrange example projects using the minimum code to reproduce them and without using 3rd party libraries?
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Ternary Graph Multiple Series
Hi Yeray
Thank you for your reply. As the rest of my code uses kbmMemTables, I was experimenting to see if I could use them with Ternary Series. I do not believe that the cause of the error I am experiencing is due to the kbmMemTable, it is because I am clearly allocating the Ternary Series parameters incorrectly, and the Ternary Series Help seems limited (or I cannot find it).
Rather than generating a new example project, I would be grateful if you could use the three csv files as input for three Ternary Series declared programmatically on single chart, and then I could then see to manage multiple series.
Thanks for your assistance on this matter.
Best regards
Errol
Thank you for your reply. As the rest of my code uses kbmMemTables, I was experimenting to see if I could use them with Ternary Series. I do not believe that the cause of the error I am experiencing is due to the kbmMemTable, it is because I am clearly allocating the Ternary Series parameters incorrectly, and the Ternary Series Help seems limited (or I cannot find it).
Rather than generating a new example project, I would be grateful if you could use the three csv files as input for three Ternary Series declared programmatically on single chart, and then I could then see to manage multiple series.
Thanks for your assistance on this matter.
Best regards
Errol
Re: Ternary Graph Multiple Series
Hello,
I believe adding three TTernarySeries and populating them with FillSampleValues already shows the undesired result you described in the opening post.
Is this the problem?
I believe adding three TTernarySeries and populating them with FillSampleValues already shows the undesired result you described in the opening post.
Is this the problem?
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Ternary Graph Multiple Series
If so, you can hide the axes and the walls before drawing the second series at OnBeforeDrawSeries. Ie:
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
for i:=0 to 2 do
with Chart1.AddSeries(TTernarySeries) as TTernarySeries do
begin
BeforeDrawValues:=SeriesBeforeDrawValues;
UseColorRange:=False;
UsePalette:=False;
ColorEachPoint:=False;
VertexTitle.Visible:=i=0;
FillSampleValues;
end;
end;
procedure TForm1.SeriesBeforeDrawValues(Sender: TObject);
begin
if Sender=Chart1[0] then
begin
Chart1.Axes.Visible:=True;
Chart1.Walls.Back.Visible:=True;
end
else
begin
Chart1.Axes.Visible:=False;
Chart1.Walls.Back.Visible:=False;
end;
end;
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |