Необходимо установить временной диапазон по оси Y на MSChart - PullRequest
0 голосов
/ 07 октября 2010

Я хочу установить ось Y для графика MSChart с полуночи до полуночи, либо в обычном формате времени (т. Е. «1:30 AM»), либо в военное время. Я понял, что могу указать формат оси Y, используя ChartArea.AxisY.LabelStyle = new LabelStyle () {Format = "ЧЧ: мм"}, но не могу понять, какие минимальные / максимальные значения установить.

Кто-нибудь использовал этот формат?

Ответы [ 3 ]

0 голосов
/ 23 октября 2010

Есть несколько вещей, которые необходимо сделать, чтобы это работало правильно.

MSChart принимает объекты DateTime в качестве значений Y.Вы можете эмулировать длительности, выполняя это для каждой из ваших точек данных (при условии, что они являются временными промежутками или чем-то, что можно преобразовать в TimeSpan):

TimeSpan testSpan = TimeSpan.FromMinutes(5);

YourChart.Series(0).Points.AddY(new DateTime(testSpan.Ticks))

Это преобразует его в дату и время, начиная с начала времени CLR.(например, 1/1/0001 12:05:00 AM).

Затем просто используйте формат метки "ЧЧ: мм" на оси Y.

<asp:ChartArea Name="VsChartArea">      
    <AxisY Minimum="0">
        <LabelStyle Format="HH:mm" />
    </AxisY>
</asp:ChartArea>

Это должно сделатьэто выглядит так:

Duration example

Чтобы установить пользовательский интервал (5 минут):

<AxisY Minimum="0" IntervalType="Minutes" Interval="5">

Надеюсь, это поможет!

0 голосов
/ 11 декабря 2010

Если вы используете военное время, замечаете ли вы, что ваша шкала не линейна?

0 голосов
/ 08 октября 2010

Я нашел обходной путь, так как я никогда не мог заставить форматирование работать с исходными значениями DateTime.

В итоге я изменил свои данные оси Y на целочисленный формат с диапазонами от 0 до 2400 (на самом деле 2359)представлять военное время.Затем я обновил LabelStyle.Format до «00:00», который переводит мои целочисленные значения в военное время.

Yay для меня.Надеюсь, это поможет кому-то еще.

...