Чтобы ответить на ваш первый вопрос: «Я хочу пометить каждый столбец, а не каждые 5»
Вы можете указать, как часто метка будет отображаться, используя свойство interval.
chart1.ChartAreas[0].AxisX.Interval = [desired interval];
или установить интервал только для использования меток:
chart1.ChartAreas[0].AxisX.LabelStyle.Interval = [desired interval];
Если я правильно следую за концом вашего вопроса, когда вы не хотите, чтобы ваш график начинался с нуля, вы можете использовать смещение метки.
chart1.ChartAreas[0].AxisX.LabelStyle.Offset = 1;
Это пропустит первый ярлык, который вы упомянули, это ноль.
Вторая задача «Я хочу указать, что означает каждая метка», может быть решена несколькими способами
Одним из методов является отображение значения (x или y) на оси (x или y), которое, как я считаю, является методом, который вы используете на основе информации, предоставленной в вашем вопросе
Другой способ - установить метку оси вручную для каждой точки данных
chart1.Series[0].Points[0].AxisLabel = "your label"
Вы также можете добавить информацию метки при добавлении точек данных
chart1.Series[0].Points.Add(new DataPoint(4, 4) { AxisLabel = "your label" });
Наконец, вы можете микроуправлять вашими ярлыками, используя пользовательские ярлыки, но это может быть более сложным, и, исходя из того, что вы ввели, вам, вероятно, не нужно их использовать, поэтому я не буду вдаваться в них.
Кроме того, вы устанавливаете xvalue, используя строку или объект DateTime?
Примерно так:
Chart1.Series[0].XValueType = ChartValueType.DateTime;
System.DateTime x = new System.DateTime(2008, 11, 21);
Chart1.Series[0].Points.AddXY(x.ToOADate(), 34);
Если это так, при работе с метками даты и времени объекты диаграммы Microsoft имеют дополнительные функции, которые можно настроить для управления отображением. Вот некоторая дополнительная информация, которая может оказаться для вас полезной.
http://msdn.microsoft.com/en-us/library/dd456614.aspx
Затем вы можете использовать такие свойства (и я уверен, что больше, но я не часто работаю с датами)
chart1.ChartAreas[0].AxisX.LabelStyle.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Days;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;
Если я не ответил должным образом на ваши вопросы из-за недопонимания, пожалуйста, дайте мне знать и пересмотрите ваш вопрос, чтобы направить меня в правильном направлении
(Примеры кода с фактическими данными, которые вы используете для создания графиков, с результирующими изображениями + то, что вы хотите делать вместо того, что отображается на изображении, полезно - у вас есть часть этого, но оно неполное)
Удачи!