Page 1 of 1
Axis Title Position
Posted: Tue Apr 10, 2007 1:02 pm
by 9788742
Hi
We have a requirement as to where we position the axis title position.
For the bottom axis it could be left, middle or right.
For the left axis it could be top, middle or bottom.
Is there any way of supporting the above thing with TeeChart.
Please comment.
Thank you.
Posted: Thu Apr 12, 2007 10:01 am
by 9348258
Hi Lakshmi
TeeChart doesn't support your requirement by the moment. I've added it (TF02012168) to our defect list to be enhanced for future releases.
In the meantime, a workaround can be to use an Annotation Tools or something similar as below code:
Code: Select all
private void Form1_Load(object sender, EventArgs e)
{
bar1.FillSampleValues(6);
tChart1.Aspect.View3D = false;
tChart1.Panel.MarginLeft = 5;
tChart1.Panel.MarginBottom = 6;
}
private void tChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
//Initialization Bottom Titles
String[] text_bottom = new String[] { "Left", "Middle", "Right" };
int[] width_bottom = new int[3];
int[] height_bottom = new int[3];
for (int i = 0; i < 3; i++)
{
width_bottom[i] = Convert.ToInt32(g.TextWidth(text_bottom[i])) + 5;
height_bottom[i] = Convert.ToInt32(g.TextHeight(text_bottom[i])) + 2;
}
int y_bottom = tChart1.Axes.Left.IEndPos + 20;
int[] x_bottom = new int[3];
x_bottom[0] = tChart1.Axes.Bottom.IStartPos;
x_bottom[1] = (tChart1.Axes.Bottom.IEndPos - tChart1.Axes.Bottom.IStartPos) / 2 + width_bottom[1] * 3 / 2;
x_bottom[2] = tChart1.Axes.Bottom.IEndPos - width_bottom[2];
//Initialization Left Titles
String[] text_left = new String[] { "Top", "Middle", "Bottom" };
int[] width_left = new int[3];
int[] height_left = new int[3];
for (int i = 0; i < 3; i++)
{
width_left[i] = Convert.ToInt32(g.TextWidth(text_left[i])) + 5;
height_left[i] = Convert.ToInt32(g.TextHeight(text_left[i])) + 2;
}
int x_left = 5;
int[] y_left = new int[3];
y_left[0] = tChart1.Axes.Left.IStartPos + width_left[0];
y_left[1] = (tChart1.Axes.Left.IEndPos - tChart1.Axes.Left.IStartPos) / 2 + width_left[1] * 3 / 2;
y_left[2] = tChart1.Axes.Left.IEndPos;
for (int i = 0; i < 3; i++)
{
//Bottom
Size s_bottom = new Size(width_bottom[i], height_bottom[i]);
Point p_bottom = new Point(x_bottom[i], y_bottom);
Rectangle r_bottom = new Rectangle(p_bottom, s_bottom);
g.Pen.Color = Color.Blue;
g.Brush.Color = Color.Blue;
g.Brush.Transparency = 50;
g.Rectangle(r_bottom);
g.TextOut(x_bottom[i], y_bottom, text_bottom[i]);
//Left
Size s_left = new Size(height_left[i], width_left[i]);
Point p_left = new Point(x_left, y_left[i] - width_left[i]);
Rectangle r_left = new Rectangle(p_left, s_left);
g.Pen.Color = Color.Blue;
g.Brush.Color = Color.Blue;
g.Brush.Transparency = 50;
g.Rectangle(r_left);
g.RotateLabel(x_left, y_left[i], text_left[i], 90);
}
}