Dygraphs: Показать имя X в легенде

У меня есть диграф, отображающий два десятичных числа друг против друга. Предоставляю данные в виде:

[[0.4,0.5],[0.6,0.7]]

и т. д.

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

Есть ли способ показать имя в легенде?

Вот как будет выглядеть график (очевидно, с другими данными!)

<div id="OptimisationCloud" style="width:100%;height:450px"></div>
<script type="text/javascript">

$(document).ready(function () {
g = new Dygraph(
                document.getElementById("OptimisationCloud"),
                [[0.4,0.5],[0.6,0.7]],
                {
                    strokeWidth: 0.0,
                    drawPoints: true,
                    xlabel:"Annualised Volatility",
                    ylabel:"Annualised Return",
                    axes: {
                        x: {
                            axisLabelFormatter: function (x) {
                                return (x * 100).toFixed(0) + "%";
                            }
                        },
                        y: {
                            axisLabelFormatter: function (y) {
                                return (y * 100).toFixed(0) + '%';
                            }
                        }
                    },
                    labels:["Ann Vol", "Ann Ret"],
                    colors: ["#1f4e6c"],
                    valueFormatter: function (y) {
                                return (y * 100).toFixed(2) + '%';
                            }
                }
            );
});

</script>

как я уже сказал, Энн Рет проходит, но Энн Вол не показана.


person Stu    schedule 03.12.2013    source источник


Ответы (1)


Это ожидаемое поведение.

Например, если бы у меня был временной ряд, я бы хотел, чтобы он показывал

2013-12-25: Presents: 5, Xmas Tree: 1

Я понимаю, что вы хотите показать значение, а не время. Итак, имея в виду вышеизложенное, вам просто нужно передать свою ось x как другую ось y, например.

[
    //X   Y1   Y2
    [0.4, 0.4, 0.5]
    [0.6, 0.6, 0.7]
]

И скройте получившуюся метку легенды.

Мой пример кода:

g = new Dygraph(
    document.getElementById("OptimisationCloud"),
    [
        [0.4,0.4,0.5],
        [0.6,0.6,0.7],
    ],
    {
        strokeWidth: 0.0,
        drawPoints: true,
        axes: {
            x: {
                axisLabelFormatter: function (x) {
                    return (x * 100).toFixed(0) + "%";
                },
                valueFormatter: function (y) {
                    return ""; //Hide legend label
                }
            },
            y: {
                axisLabelFormatter: function (y) {
                    return (y * 100).toFixed(0) + '%';
                },
                valueFormatter: function (y) {
                    return (y * 100).toFixed(2) + '%';
                }               
            },
            y2: {
                axisLabelFormatter: function (y) {
                    return (y * 100).toFixed(0) + '%';
                },
                valueFormatter: function (y) {
                    return (y * 100).toFixed(2) + '%';
                }
            }
        },
        labels:["X", "Ann Vol", "Ann Ret"], //The "X" is hidden by returning the empty string above
        xlabel: "Annualised Volatility",
        ylabel: "Annualised Return",
        colors: ["#1f4e6c"],
    }
);
person ConnectedSystems    schedule 13.01.2014
comment
Хорошая работа вокруг. Мне пришлось добавить прозрачный цвет для первого цвета оси Y. Спасибо - person Stu; 04.02.2014