Custom Y axises are not resizing after zooming
Custom Y axises are not resizing after zooming
Hi,
I am having one problem with custom axis resizing.
I have 10 Fastline series with 10 custom y axises.
Position of the Custom axises are something like written below -
_CustomAxis1.StartPosition = 0;
_CustomAxis1.EndPosition = 10;
_CustomAxis2.StartPosition = 11;
_CustomAxis2.EndPosition = 20;
_CustomAxis3.StartPosition = 21;
_CustomAxis3.EndPosition = 30;
And so on....
Each series is associated with one different custom axis so that there is no data overlap.
Now by default all the custom axises are visible. But when i am zooming in - Only 2 or 3 fastline serieses are visible but all other serieses are outside the visible area. I am using the SetMinMax of the custom axis for zooming in. After that i have called the AdjustMinMax fuction to resize the visible custom axises. But the custom axises are not getting resized.
In my application -
Allow.Zoom = false
Axis.Automatic = false
Please let me know how can i solve that problem.
Regards,
Avijit
I am having one problem with custom axis resizing.
I have 10 Fastline series with 10 custom y axises.
Position of the Custom axises are something like written below -
_CustomAxis1.StartPosition = 0;
_CustomAxis1.EndPosition = 10;
_CustomAxis2.StartPosition = 11;
_CustomAxis2.EndPosition = 20;
_CustomAxis3.StartPosition = 21;
_CustomAxis3.EndPosition = 30;
And so on....
Each series is associated with one different custom axis so that there is no data overlap.
Now by default all the custom axises are visible. But when i am zooming in - Only 2 or 3 fastline serieses are visible but all other serieses are outside the visible area. I am using the SetMinMax of the custom axis for zooming in. After that i have called the AdjustMinMax fuction to resize the visible custom axises. But the custom axises are not getting resized.
In my application -
Allow.Zoom = false
Axis.Automatic = false
Please let me know how can i solve that problem.
Regards,
Avijit
Re: Custom Y axises are not resizing after zooming
Hello Avijit,
I recommend use Events Mouseup and MouseDown for update the customAxes. Please see next code and check if it solves your problem.
You need similar code in MouseUp Event:
You need similar code in MouseDown Event:
}
If not solve your problem please you could send us a simple project, because we can reproduce here and try to help you with the problem. On the other hand you could say witch version of TeeChart .Net you are using?
I hope will helps.
Thanks,
I recommend use Events Mouseup and MouseDown for update the customAxes. Please see next code and check if it solves your problem.
You need similar code in MouseUp Event:
Code: Select all
void tChart1_MouseUp(object sender, MouseEventArgs e)
{//Ajust chart axes.
if((e.X>StartX) && (e.Y >StartY))
{
for(int i=0;i<tChart1.Axes.Custom.Count;i++)
{
tChart1.Axes.Custom[i].SetMinMax(tChart1.Axes.Custom[i].CalcPosPoint(e.Y),tChart1.Axes.Custom[i].CalcPosPoint(StartY));
tChart1.Axes.Bottom.SetMinMax(tChart1.Axes.Bottom.CalcPosPoint(StartX),tChart1.Axes.Bottom.CalcPosPoint(e.X));
}
}
else
{
for(int i=0; i<tChart1.Axes.Custom.Count;i++)
tChart1.Axes.Custom[i].Automatic=true;
}
}
Code: Select all
void tChart1_MouseDown(object sender, MouseEventArgs e)
{//and set StartX and StartY values when MouseButton== Left.
if(e.Button==MouseButtons.Left)
{
StartX = e.X;
StartY = e.Y;
}
If not solve your problem please you could send us a simple project, because we can reproduce here and try to help you with the problem. On the other hand you could say witch version of TeeChart .Net you are using?
I hope will helps.
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Re: Custom Y axises are not resizing after zooming
Hi Sandra,
I am presently doing the same as you suggested.
Problem i am finding is -
Even after calling the SetMinMax fuction the size of the axis is same.
I am checking the size using - IAxisSize parameter.
Means, the custom y axis positions are still showing as -
CustomY -
StartPosition - 0
EndPosition - 10
CustomY1 -
StartPosition - 11
EndPosition - 20
and so on...
I want to change the position of those custom y axis based on the visibility. For example - If after zooming out of 10 data series - only 2 data series is visible fully(in y axis not in x axis) and a 3rd data series is visible partially (in y axis).Then only 2 custom axis + a portion of the third custom axis should take the whole chart height. Start and end of those custom axises should be something like that -
CustomY -
StartPosition - 0
EndPosition - 40
CustomY1 -
StartPosition - 41
EndPosition - 80
CustomY2 - (this axis is visible partially)
StartPosition - 81
EndPosition - 100
I am using the below version of TeeChart -
Version=4.0.2009.28594
Regards,
Avijit
I am presently doing the same as you suggested.
Problem i am finding is -
Even after calling the SetMinMax fuction the size of the axis is same.
I am checking the size using - IAxisSize parameter.
Means, the custom y axis positions are still showing as -
CustomY -
StartPosition - 0
EndPosition - 10
CustomY1 -
StartPosition - 11
EndPosition - 20
and so on...
I want to change the position of those custom y axis based on the visibility. For example - If after zooming out of 10 data series - only 2 data series is visible fully(in y axis not in x axis) and a 3rd data series is visible partially (in y axis).Then only 2 custom axis + a portion of the third custom axis should take the whole chart height. Start and end of those custom axises should be something like that -
CustomY -
StartPosition - 0
EndPosition - 40
CustomY1 -
StartPosition - 41
EndPosition - 80
CustomY2 - (this axis is visible partially)
StartPosition - 81
EndPosition - 100
I am using the below version of TeeChart -
Version=4.0.2009.28594
Regards,
Avijit
Re: Custom Y axises are not resizing after zooming
Hello Avijit,
I made a simple example using UnDoneZoom Event and Zoomed Event. You could do something like the following code:
Please, check next code works as you want.
I hope will helps.
Thanks,
I made a simple example using UnDoneZoom Event and Zoomed Event. You could do something like the following code:
Code: Select all
public Form1()
{
InitializeComponent();
InitializeChart();
}
private Steema.TeeChart.Axis axis1;
private Steema.TeeChart.Axis axis2;
private Steema.TeeChart.Axis axis3;
private Steema.TeeChart.Styles.Line lineSeries1;
private Steema.TeeChart.Styles.Line lineSeries2;
private Steema.TeeChart.Styles.Line lineSeries3;
private Steema.TeeChart.Styles.Line lineSeries4;
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
lineSeries1 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
lineSeries2 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
lineSeries3 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
lineSeries4 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
axis1 = new Steema.TeeChart.Axis();
axis2 = new Steema.TeeChart.Axis();
axis3 = new Steema.TeeChart.Axis();
lineSeries1.FillSampleValues(10);
lineSeries2.FillSampleValues(10);
lineSeries3.FillSampleValues(10);
lineSeries4.FillSampleValues(10);
lineSeries1.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Left;
lineSeries2.CustomVertAxis = axis1;
lineSeries3.CustomVertAxis = axis2;
lineSeries4.CustomVertAxis = axis3;
tChart1.Axes.Custom.Add(axis1);
tChart1.Axes.Custom.Add(axis2);
tChart1.Axes.Custom.Add(axis3);
CustomAxesPosition();
tChart1.UndoneZoom += new EventHandler(tChart1_UndoneZoom);
tChart1.Zoomed += new EventHandler(tChart1_Zoomed);
}
void tChart1_Zoomed(object sender, EventArgs e)
{
axis1.Visible = false;
axis3.Visible = false;
lineSeries2.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Left;
lineSeries3.CustomVertAxis = axis2;
tChart1.Axes.Left.StartPosition = 0;
tChart1.Axes.Left.EndPosition = 50;
axis2.StartPosition = 50;
axis2.EndPosition = 100;
}
void tChart1_UndoneZoom(object sender, EventArgs e)
{
lineSeries2.CustomVertAxis = axis1;
lineSeries4.CustomVertAxis = axis3;
axis1.Visible = true;
axis3.Visible = true;
CustomAxesPosition();
}
private void CustomAxesPosition()
{
//-----------Custom axes 0-----------------//
tChart1.Axes.Left.StartPosition = 0;
tChart1.Axes.Left.EndPosition = 25;
tChart1.Axes.Left.AxisPen.Color = Color.Red;
//-----------Custom axes 1----------------//
axis1.StartPosition = 25;
axis1.EndPosition = 50;
axis1.AxisPen.Color = Color.Black;
//----------Custom axes 2---------------//
axis2.StartPosition = 50;
axis2.EndPosition = 75;
axis2.AxisPen.Color = Color.Purple;
//----------Custom axes 3--------------//
axis3.StartPosition = 75;
axis3.EndPosition = 100;
axis3.AxisPen.Color = Color.Orange;
}
I hope will helps.
Thanks,
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Re: Custom Y axises are not resizing after zooming
Hi Sandra,
Problem is i am not using the normal TeeChart zoom.
So, undonezoom and zoomed events are not fired in my application.
Also, i think i am not able to make you understand my problem clearly.
How can I identify what all axis should be visible and what all should not after calling the SetMinMax function? And how can i decide on the size (here Size means the Start position and the End Posotion) of the visible custom axises after zooming? In my application, the custom axises should be resized dynamically.
Regards,
Avijit
Problem is i am not using the normal TeeChart zoom.
So, undonezoom and zoomed events are not fired in my application.
Also, i think i am not able to make you understand my problem clearly.
How can I identify what all axis should be visible and what all should not after calling the SetMinMax function? And how can i decide on the size (here Size means the Start position and the End Posotion) of the visible custom axises after zooming? In my application, the custom axises should be resized dynamically.
Regards,
Avijit
-
- Site Admin
- Posts: 1349
- Joined: Thu Jan 01, 1970 12:00 am
- Location: Riudellots de la Selva, Catalonia
- Contact:
Re: Custom Y axises are not resizing after zooming
Hello Avijit,
I think the best thing you could do is to create a new project and use the minimum amount of code necessary to reproduce your issue. You can then upload this project as an attachment to this forum and we can have a look at it to try and help you.
This makes it a little more difficult to help you without looking at a small code example we can use to reproduce the problem here.Avijit wrote:Problem is i am not using the normal TeeChart zoom.
Avijit wrote:How can I identify what all axis should be visible and what all should not after calling the SetMinMax function? And how can i decide on the size (here Size means the Start position and the End Posotion) of the visible custom axises after zooming? In my application, the custom axises should be resized dynamically.
I think the best thing you could do is to create a new project and use the minimum amount of code necessary to reproduce your issue. You can then upload this project as an attachment to this forum and we can have a look at it to try and help you.
Thank you!
Christopher Ireland (Steema crew)
Please be aware of the newsgroup archives:
http://www.teechart.net/support/search.php
http://groups.google.com
http://codenewsfast.com/
Christopher Ireland (Steema crew)
Please be aware of the newsgroup archives:
http://www.teechart.net/support/search.php
http://groups.google.com
http://codenewsfast.com/
Re: Custom Y axises are not resizing after zooming
Hi Christopher,
I have made a small example so that you can understand the problem.
Below are few screen shots of the application.
Before zooming - (Look at the custom axises at the left side) After zooming - (Number of custom axis visible is still 10. although only one series is visible.) One more -
Project is attached here - Regards,
Avijit
I have made a small example so that you can understand the problem.
Below are few screen shots of the application.
Before zooming - (Look at the custom axises at the left side) After zooming - (Number of custom axis visible is still 10. although only one series is visible.) One more -
Project is attached here - Regards,
Avijit
Re: Custom Y axises are not resizing after zooming
Hi,
One more screeshot below -
Here also - all the custom axises are in the same position even though the series associated with few of the custom axises are not visible (Out of visible area). What we need is - the custom axises should be resized based on the series data values.
If the series is fully visible then the custom axis should be there with proper size. If only one series is visible then the custom axis associated with that series should be the only axis visible and should take the whole area. Means the start and end position should be - 0 and 100.
Similarly, now if 2 data serieses are visible and some portion of a third data series is visible then the custom axis size that is associated with the data series that is partially visible should not be of the same size as other axises.
In that case the custom axises size should be based on the data series visibility.
Hope i am able to make you understand.
Regards,
Avijit
One more screeshot below -
Here also - all the custom axises are in the same position even though the series associated with few of the custom axises are not visible (Out of visible area). What we need is - the custom axises should be resized based on the series data values.
If the series is fully visible then the custom axis should be there with proper size. If only one series is visible then the custom axis associated with that series should be the only axis visible and should take the whole area. Means the start and end position should be - 0 and 100.
Similarly, now if 2 data serieses are visible and some portion of a third data series is visible then the custom axis size that is associated with the data series that is partially visible should not be of the same size as other axises.
In that case the custom axises size should be based on the data series visibility.
Hope i am able to make you understand.
Regards,
Avijit
Re: Custom Y axises are not resizing after zooming
Hello Avijit,
I could reproduce your problem. I think it occurs when you do SetMinMax(), because position of FastLine Series don't paint correctly. Do you need to do SetMinMax() necessarily?
Because, looking at your code, I see that really you don’t need use SetMinMax() function, because labels don't appears and axes resizing although you don't do SetMinMax(). Therefore, if you don't need to do SetMinMax() I suggested remove it. But if I was wrong, please let me know, because we will try find a solution using SetMinMax () function.
On the other hand, please could you check if you are removing the events lines are drawing correctly?
I hope will help.
I could reproduce your problem. I think it occurs when you do SetMinMax(), because position of FastLine Series don't paint correctly. Do you need to do SetMinMax() necessarily?
Because, looking at your code, I see that really you don’t need use SetMinMax() function, because labels don't appears and axes resizing although you don't do SetMinMax(). Therefore, if you don't need to do SetMinMax() I suggested remove it. But if I was wrong, please let me know, because we will try find a solution using SetMinMax () function.
On the other hand, please could you check if you are removing the events lines are drawing correctly?
I hope will help.
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Re: Custom Y axises are not resizing after zooming
Hi Sandra,
Regards,
Avijit
Yes. I require this SetMinMax() function call for zooming in and resizing the Custom Axises. And resizing of Custom axises are also very important because - the size and screen location of the custom axises determines the size of few objects that i am drawing inside the control. The objects size is directly related to the size of the custom axises.Do you need to do SetMinMax() necessarily?
Sorry i did not understood that part.On the other hand, please could you check if you are removing the events lines are drawing correctly?
Regards,
Avijit
Re: Custom Y axises are not resizing after zooming
Hello Avijit,
I rewrite your code and I think that I have found a solution that do as you want. Please, you could check that code I have added in this post works correctly ans alse works as you want.If you do not understand something, please you tell us.
I hope will helps.
Thanks,
I rewrite your code and I think that I have found a solution that do as you want. Please, you could check that code I have added in this post works correctly ans alse works as you want.If you do not understand something, please you tell us.
I hope will helps.
Thanks,
- Attachments
-
- NoResize1.zip
- (11.04 KiB) Downloaded 707 times
Best Regards,
Sandra Pazos / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |