Как разместить легенду сверху, а не снизу в Plotly? - PullRequest
0 голосов
/ 15 ноября 2018

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

var myData = [
    {
        fcst_valid_local: "2013-01-04 22:23:00",
        pop: 20,
        temp: 38,
    },
    {
        fcst_valid_local: "2013-02-04 22:23:00",
        pop: 15,
        temp: 39,
    },
    {
        fcst_valid_local: "2013-03-04 22:23:00",
        pop: 2,
        rh: 70,
    }

];

var data = [
    {
        x: myData.map(d => d.fcst_valid_local),
        y: myData.map(d => d.temp),
        type: 'line'
    },
    {
        x: myData.map(d => d.fcst_valid_local),
        y: myData.map(d => d.pop),
        type: 'bar',
        yaxis: 'y2'
    }
];

var layout = {
    title: 'Daily Forecast',
    yaxis: {
        autorange: true,
        range: [0, 100],
    },
    yaxis2: {
        range: [0, 100],
        side: 'right',
        overlaying: 'y',
        type: 'linear'
    },
    legend: {orientation: 'h', side: 'top'}
};

Plotly.newPlot('myDiv', data, layout);
    <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>

<div id="myDiv" style="width: 480px; height: 400px;"><!-- Plotly chart will be drawn inside this DIV --></div>

1 Ответ

0 голосов
/ 18 ноября 2018

Вы можете установить legend, установив его значения x и y.Для вашего графика это будет что-то вроде:

legend: {x: 0.4, y: 1.2}

var myData = [
    {
        fcst_valid_local: "2013-01-04 22:23:00",
        pop: 20,
        temp: 38,
    },
    {
        fcst_valid_local: "2013-02-04 22:23:00",
        pop: 15,
        temp: 39,
    },
    {
        fcst_valid_local: "2013-03-04 22:23:00",
        pop: 2,
        rh: 70,
    }

];

var data = [
    {
        x: myData.map(d => d.fcst_valid_local),
        y: myData.map(d => d.temp),
        type: 'line'
    },
    {
        x: myData.map(d => d.fcst_valid_local),
        y: myData.map(d => d.pop),
        type: 'bar',
        yaxis: 'y2'
    }
];

var layout = {
    title: 'Daily Forecast',
    yaxis: {
        autorange: true,
        range: [0, 100],
    },
    yaxis2: {
        range: [0, 100],
        side: 'right',
        overlaying: 'y',
        type: 'linear'
    },
    legend: {x: 0.4, y: 1.2}
};

Plotly.newPlot('myDiv', data, layout);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv" style="width: 480px; height: 400px;">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...