Как всегда отображать первую и последнюю метку AxisX с помощью элементов управления Microsoft Chart? - PullRequest
1 голос
/ 29 июля 2010

Я разрабатываю график эволюции акций с помощью Microsoft Chart Controls , и мне нужно указать начальную и конечную даты на этикетках AxisX, но я не могу этого сделать.

Я нашел в Google много решений, например, установил свойства:

Chart1.ChartAreas[0].AxisX.Minimum = InitialDate.ToOADate();
Chart1.ChartAreas[0].AxisX.Maximum = FinalDate.ToOADate();
Chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = true;

Ничто так не отличается. Мне нужна помощь!

На приведенном ниже примере начальной датой было 26 июля 2007 года, а последней - 26 июля 2010 года. Это то, что мне нужно показать на ярлыках диаграммы, остальные даты не имеют значения и могут быть показаны в любом интервал.

альтернативный текст http://img826.imageshack.us/img826/6518/evolucaoinvestimento.png

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011
LCharts(iChart).Chart.ChartAreas(0).AxisX.Minimum = MinDate.ToOADate

LCharts(iChart).Chart.ChartAreas(0).AxisX.Maximum = MaxDate.ToOADate

LCharts(iChart).Chart.ChartAreas(0).AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount

'LCharts(iChart).Chart.ChartAreas(0).AxisX.IsMarginVisible = True

LCharts(iChart).Chart.ChartAreas(0).AxisX.LabelStyle.IsEndLabelVisible = True
2 голосов
/ 02 августа 2010

Я получаю способ:

// get the interval in days
double days = (double)((TimeSpan)(FinalDate - InitialDate)).Days;

// the number os labels
double labels = 10.0;

// check if the number of days is bigger than labels
if (days > labels)
{
    // calculate the interval
    double interval = days / labels;
    Chart1.ChartAreas[0].AxisX.Interval = interval;
}
else
{
    // set the interval of 1 day
    Chart1.ChartAreas[0].AxisX.Interval = 1;
}

Вот результат:

график http://img691.imageshack.us/img691/7796/chartimgca42ufcm.png

...