Как изменить формат строки OxyPlot Y-Axis?

Может ли кто-нибудь сказать мне, как изменить формат строки оси Y ??

У меня есть проценты по оси Y, к которым я хочу добавить знак процента.

Я использую OxyPlot для создания диаграммы в wpf.

Вот моя попытка, но она НЕ работает:

Func<double, string> formatFunc = (x) => string.Format("{000.00}%", x);

        formatFunc = new Func<double,string>("{0}");
        // Add the plot to the window
        line.YAxis.LabelFormatter = formatFunc;

Это приводит к ошибке нулевой ссылки.

Спасибо!


person Hooplator15    schedule 23.07.2014    source источник
comment
Вы примеры смотрели? Есть один специально для LabelFormatter. К вашему сведению, примеры графиков находятся на веб-сайте, поэтому вы можете найти нужную функцию, а затем посмотреть на этот пример: oxyplot .org/ExampleBrowser Примерно в десятой части пути вниз, под заголовком Примеры Axis, находится LabelFormatter.   -  person Steve    schedule 23.07.2014
comment
Нет, я понятия не имел, что такие примеры существуют. Я просто отключился от поиска в гугле. Я посмотрю. Конечно чувствую себя тупым сейчас... Спасибо!   -  person Hooplator15    schedule 23.07.2014
comment
Нет, я прошел через то же самое. Добавьте это в закладки. Я считаю, что код для этих примеров включен в исходники OxyPlot, так что вы можете собрать и запустить его самостоятельно, если хотите, но я не вижу в этом особой необходимости. Обычно найдите пример, который делает что-то подобное, просмотрите код, а затем настройте свой. Кстати, если это поможет решить вашу проблему, дайте мне знать, и я перенесу ее в ответ.   -  person Steve    schedule 23.07.2014
comment
@Steve, веб-сайт, на который вы указали, больше не существует. Вам нужно будет загрузить код github и скомпилировать ExampleBrowser самостоятельно (если он не доступен где-либо еще).   -  person lnjuanj    schedule 14.06.2021


Ответы (2)


Это пример, который я использовал ранее для форматирования оси X на оксиграфике:

var xAxis = new DateTimeAxis
{
    Position = AxisPosition.Bottom,
    StringFormat = "dd/MM/yyyy",
    Title = "End of Day",
    IntervalLength = 75,
    MinorIntervalType = DateTimeIntervalType.Days,
    IntervalType = DateTimeIntervalType.Days,
    MajorGridlineStyle = LineStyle.Solid,
    MinorGridlineStyle = LineStyle.None,
};

Plot = new PlotModel();
Plot.Axes.Add(xAxis);
person AwkwardCoder    schedule 24.07.2014

        this._PlotModel.Axes.Add( new LinearAxis
        {
            Position = AxisPosition.Left,
            Minimum = 0.025,
            Maximum = 0.205,
            StringFormat = "0.00%",
            MajorStep = 0.005
        } );

- добавить проценты в виде соотношения: 20,5% --> 0,205, 0,5% --> 0,005 и т. д.

person KateKotova    schedule 03.05.2017