如何设置刻度线的间隔?

How to set an interval for tickmarks?

我正在尝试以 50 为间隔设置刻度线。MajorGrid 工作正常,但我找不到任何方法让 yAxis 的刻度线与 majorgrid 的网格线对齐。目前我正在使用这个:

chart.ChartAreas.Add(new ChartArea("statistic")
{
    AxisX = ...
    AxisY = new Axis
    {
        MajorGrid =
            new Grid
                {
                    Enabled = true,
                    LineColor = Color.Black,
                    LineDashStyle = ChartDashStyle.Solid,
                    Interval = 50,
                    IntervalOffset = 0
                },
        Title = yAxisDesc,
        Minimum = yAxisRange.Item1,
        Maximum = yAxisRange.Item2
    }
}

得到这个:

我尝试修改 MajorTickMark 无济于事。

我需要更改什么?

感谢 jstreet, 我找到了以下解决方案:

AxisY =
new Axis
    {
        MajorGrid =
            new Grid
                {
                    Enabled = true,
                    LineColor = Color.Black,
                    LineDashStyle = ChartDashStyle.Solid,
                    Interval = 50,
                    IntervalOffset = 0
                },
        Title = yAxisDesc,
        Minimum = yAxisRange.Item1,
        Maximum = yAxisRange.Item2,
        LabelStyle = new LabelStyle{Interval = 50, Enabled=true,IntervalOffset = 0,IsEndLabelVisible = true},
        MajorTickMark =
            new TickMark
                {
                    Enabled = true,
                    Interval = 50,
                    IntervalOffset = 0,
                },
    }

但是,仅使用 MajorTickMark 或 LabelStyle 不会生成所需的图表。现在是这样:

试试这个:

 private void Form1_Load(object sender, EventArgs e)
    {
        int xmax = 100;

        chart1.ChartAreas[0].AxisX.IsLogarithmic = true;
        chart1.ChartAreas[0].AxisX.MinorGrid.Enabled = true;
        chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 1;

        chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 50;
        chart1.ChartAreas[0].AxisY.MajorTickMark.Interval = 50;
        chart1.ChartAreas[0].AxisY.LabelStyle.Interval = 50;

        for (int x = 1; x < xmax; x++)
            chart1.Series[0].Points.AddXY(x, 5 * x);
    }