Как изменить значения на оси X в графике в приложении Windows Forms?

Я добавляю данные по оси X, которые представляют собой массив значений за 72 часа. Можете подсказать, как сделать так, чтобы значения на оси Y выводились не в десятичном формате, а, например, в виде 0, 15, 30, 45, 60, 72? Будет идеальным, если значения будут отображаться каждую полную час, от 0 до 72 часов. <br/> 

<pre><code class="cs">int[] hoursOfWeek = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
    25, 26, 27, 28, 29, 30, 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,
    58,59,60,61,62,63,64,65,66,67,68,69,70,71,72
}; //часы
for (int i = 0; i &lt; hoursOfWeek.Length; i++)
{
    probably_day_change[i] = 1-Math.Exp(-2*i);
    chart1.Series[1].Points.AddXY(i, probably_day_destruction[i]); 
}</code></pre> <br/>
  • 16 января 2025 г. 17:13
Ответы на вопрос 2
Для изменения значений на оси X в графике Windows Forms, вы можете использовать метод `AxisX.CustomLabels` для создания пользовательских меток на оси X. Ниже приведен пример, как вы можете настроить метки на оси X, чтобы отобразить только полные часы от 0 до 72.

Вот как это можно сделать:

1. Убедитесь, что ваш график (`chart1`) настроен с необходимыми сериями и данными.
2. Используйте `AxisX.CustomLabels` для установки пользовательских меток.

Вот измененный код:

```csharp
using System;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

public partial class YourForm : Form
{
    public YourForm()
    {
        InitializeComponent();
        
        int[] hoursOfWeek = new int[73];
        for (int i = 0; i <= 72; i++)
        {
            hoursOfWeek[i] = i;
        }

        double[] probably_day_destruction = new double[73];
        for (int i = 0; i < hoursOfWeek.Length; i++)
        {
            probably_day_destruction[i] = 1 - Math.Exp(-2 * i);
            chart1.Series[0].Points.AddXY(i, probably_day_destruction[i]);
        }
        
        // Устанавливаем пользовательские метки на оси X
        for (int i = 0; i <= 72; i++)
        {
            chart1.ChartAreas[0].AxisX.CustomLabels.Add(i + 0.5, i + 1.5, i.ToString());
        }
       
        // Настройка интервалов меток на оси X
        chart1.ChartAreas[0].AxisX.Interval = 1; // Установите интервал на 1
        chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.LightGray;
    }
}
```

### Объяснение кода:
1. Мы создаем массив `hoursOfWeek`, который содержит значения от 0 до 72.
2. Затем заполняем `probably_day_destruction` с некоторыми данными.
3. В цикле добавляем точки в график.
4. Далее, с помощью `AxisX.CustomLabels`, создаем пользовательские метки для оси X, где добавляем соответствующие метки от 0 до 72.
5. Установили интервал для оси X равным 1, что позволяет отображать каждую полную единицу.

Таким образом, ваш график теперь будет отображать значения на оси X от 0 до 72 часов с соответствующими метками, что сделает его более информативным.
Как насчёт документацию открыть? 
На нужной тебе chart area ищешь AxisX , а у неё уже свойства Interval, IntervalOffset, и всё что с ними связано.
Похожие вопросы