Jump to content
Software FX Community

Forcing XAxis to display dates instead of Q1/Q2 or month names...

User (Legacy)

Recommended Posts

Is there any way when creating a scatter plot to force a Chart control 

to honor the the AxisX.LabelFormat.CustomFormat property?

I am using the following code to create a chart:

ArrayList container = new ArrayList();

ArrayList dates = new ArrayList();

ArrayList values = new ArrayList();











chart2.Gallery = SoftwareFX.ChartFX.Gallery.Scatter;

chart2.DataType[0] = DataType.XValue;

chart2.DataType[1] = DataType.Value;

chart2.Series[0].Gallery = Gallery.Lines;

chart2.Series[0].LineWidth = 1;

chart2.Series[0].MarkerShape = MarkerShape.Diamond;

chart2.Series[0].Color = Color.Orange;

chart2.AxisX.LabelsFormat.Format = AxisFormat.DateTime;

chart2.AxisX.LabelsFormat.CustomFormat = "M/d/yy";

chart2.DataSource = new ListProvider(container);

When the chart is initially rendered, the custom format is honored and

the dates appear in the '2/9/05' format as they should. However, when

the chart resized so that it is smaller horizontally, suddenly the x

axis values are displayed as "Feb '05 | Mar". I have also seen this

behavior when dealing with charts with 100 or more datapoints, where

suddenly the x axis values will be displayed as "Q1 '03 | Q2 | Q3", etc.

Is there any way to prevent this behavior?



BTW: I know I can prevent this behavior by switching chart2.DataType[0]

to Label, but that is not an acceptable solution since it treats each

date as a label and not an XValue (causing each datapoint to be

equidistant to each other datapoint which is incorrect).

Link to comment
Share on other sites

> Is there any way to prevent this behavior?


When using dates the custom format is a composite string containing

different formats to use depending on the interval:

<day format>;<month format>;<abbreviated year format>;<quarter format>;<year



<day format> = Regular date format (Default = Default Date Format)

<month format> = How the labels are display if the interval is month

(default = "MMM")

<abbreviated year format>: When interval is Month or Quarter, the year is

displayed when it changes (Default = 'YY)

<quarter format> = When the interval is Quarter. Use {q} as the placeholder

for the Quarter number (Default = Q{q})

<year format> = Used when the interval is a year or more.

In your case you want the quarter format to be the same as the day format,

you want to set:

chart.AxisX.LabelFormat.Custom = "MM/dd/yy;MM/dd/yy;;MM/dd/yy;yyyy"



Software FX

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...