Articles in this section
Category / Section

How can I hide the PrimaryYaxis and show only the custom axis?

5 mins read

 

To display only the custom axis, please do the following steps.

1. You have to set the LayoutMode of both X and Y axis to stacking mode.

C#

chartControl1.ChartArea.XAxesLayoutMode = ChartAxesLayoutMode.Stacking;

chartControl1.ChartArea.YAxesLayoutMode = ChartAxesLayoutMode.Stacking;

VB

chartControl1.ChartArea.XAxesLayoutMode = ChartAxesLayoutMode.Stacking

chartControl1.ChartArea.YAxesLayoutMode = ChartAxesLayoutMode.Stacking

2. You have to position the custom Y axis in LayoutCompleted event. Please refer to the following code snippet.

C#

this.chartControl1.LayoutCompleted += new EventHandler(chartControl1_LayoutCompleted);

void chartControl1_LayoutCompleted(object sender, EventArgs e)

{

PositionAllYAxes();

}

ChartAxis a;

private void PositionAllYAxes()

{

for (int i = 0; i < chartControl1.Axes.Count; i++)

{

a = chartControl1.Axes[i];

if (a != chartControl1.PrimaryYAxis && a.Orientation == ChartOrientation.Vertical)

{

a.LocationType = ChartAxisLocationType.Set;

a.Location = new PointF(chartControl1.PrimaryYAxis.Location.X, chartControl1.PrimaryYAxis.Location.Y);

}

}

}

VB

AddHandler chartControl1.LayoutCompleted, AddressOf chartControl1_LayoutCompleted

Private a As ChartAxis

Private Sub chartControl1_LayoutCompleted(ByVal sender As Object, ByVal e As EventArgs)

PositionAllYAxes()

End Sub

Private Sub PositionAllYAxes()

Dim i As Integer = 0

Do While i < chartControl1.Axes.Count

a = chartControl1.Axes(i)

If Not a Is chartControl1.PrimaryYAxis AndAlso a.Orientation = ChartOrientation.Vertical Then

a.LocationType = ChartAxisLocationType.Set

a.Location = New PointF(chartControl1.PrimaryYAxis.Location.X, chartControl1.PrimaryYAxis.Location.Y)

End If

End Sub

3. Then you have hide other axes in LayoutCompleted. Please refer to the following code snippet

C#

void chartControl1_LayoutCompleted(object sender, EventArgs e)

{

HideOtherAxes(a);

}

private void HideOtherAxes(ChartAxis currentAxis)

{

int axesCount = this.chartControl1.Axes.Count;

for (int i = 0; i < axesCount; i++)

{

ChartAxis a = this.chartControl1.Axes[i];

if (a != currentAxis && a.Orientation == ChartOrientation.Vertical)

{

a.DrawGrid = false;

a.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.None;

}

}

currentAxis.DrawGrid = true;

currentAxis.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.AutomaticMode;

currentAxis.Location = new PointF(this.chartControl1.PrimaryYAxis.Location.X, this.chartControl1.PrimaryYAxis.Location.Y);

currentAxis.ZoomFactor = this.chartControl1.PrimaryYAxis.ZoomFactor;

}

VB

Private a As ChartAxis

Private Sub chartControl1_LayoutCompleted(ByVal sender As Object, ByVal e As EventArgs)

HideOtherAxes(a);

End Sub

Private Sub HideOtherAxes(ByVal currentAxis As ChartAxis)

Dim axesCount As Integer = Me.chartControl1.Axes.Count

Dim i As Integer = 0

Do While i < axesCount

Dim a As ChartAxis = Me.chartControl1.Axes(i)

If Not a Is currentAxis AndAlso a.Orientation = ChartOrientation.Vertical Then

a.DrawGrid = False

a.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.None

End If

i += 1

Loop

currentAxis.DrawGrid = True

currentAxis.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.AutomaticMode

currentAxis.Location = New PointF(Me.chartControl1.PrimaryYAxis.Location.X, Me.chartControl1.PrimaryYAxis.Location.Y)

currentAxis.ZoomFactor = Me.chartControl1.PrimaryYAxis.ZoomFactor

End Sub

Sample: http://help.syncfusion.com/support/samples/Chart.Windows/HideYaxis/ChartSeries.zip

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied