Plottable.Plots.Rectangle создание ректов шириной 0

У меня есть следующие данные:

[{
    "date": "2016-10-12T00:00:00.000Z",
    "parameter": "end_brick_temperature",
    "value": 61.3,
    "color": "green"
}, {
    "date": "2016-10-12T00:00:00.000Z",
    "parameter": "percentage_of_expected_messages_received",
    "value": 99.6667,
    "color": "green"
}, {
    "date": "2016-10-12T00:00:00.000Z",
    "parameter": "energy_used_kwh",
    "value": 1.73418,
    "color": "orange"
}, {
    "date": "2016-10-12T08:00:00.000Z",
    "parameter": "energy_used_kwh",
    "value": 0.70354,
    "color": "red"
}, {
    "date": "2016-10-12T08:00:00.000Z",
    "parameter": "end_brick_temperature",
    "value": 57.7,
    "color": "green"
}, {
    "date": "2016-10-12T08:00:00.000Z",
    "parameter": "percentage_of_expected_messages_received",
    "value": 98.3333,
    "color": "green"
}, {
    "date": "2016-10-12T16:00:00.000Z",
    "parameter": "percentage_of_expected_messages_received",
    "value": 99.1667,
    "color": "green"
}, {
    "date": "2016-10-12T16:00:00.000Z",
    "parameter": "energy_used_kwh",
    "value": 0,
    "color": "red"
}, {
    "date": "2016-10-12T16:00:00.000Z",
    "parameter": "end_brick_temperature",
    "value": 42.2,
    "color": "green"
}, {
    "date": "2016-10-13T00:00:00.000Z",
    "parameter": "energy_used_kwh",
    "value": 1.73979,
    "color": "orange"
}, {
    "date": "2016-10-13T00:00:00.000Z",
    "parameter": "end_brick_temperature",
    "value": 66.2
}, {
    "date": "2016-10-13T00:00:00.000Z",
    "parameter": "percentage_of_expected_messages_received",
    "value": 99.3333,
    "color": "green"
}, {
    "date": "2016-10-13T08:00:00.000Z",
    "parameter": "end_brick_temperature",
    "value": 59.8,
    "color": "green"
}, {
    "date": "2016-10-13T08:00:00.000Z",
    "parameter": "energy_used_kwh",
    "value": 0.711456,
    "color": "red"
}, {
    "date": "2016-10-13T08:00:00.000Z",
    "parameter": "percentage_of_expected_messages_received",
    "value": 98.3333,
    "color": "green"
}]

Я пытаюсь создать тепловую карту с помощью Plottable.Plot.Rectangle со следующим кодом:

    var xScale = new Plottable.Scales.Time().domain([data[0].date, data[data.length - 1].date]);
    var xAxisDate = new Plottable.Axes.Time(xScale, "bottom");
    var yScale = new Plottable.Scales.Category();
    var yAxisParameters = new Plottable.Axes.Category(yScale, "left");

    var plot = new Plottable.Plots.Rectangle()
        .addDataset(new Plottable.Dataset(data))
        .x(function (d) {
            return d.date
        }, xScale)
        .y(function (d) {
            return d.parameter
        }, yScale)
        .attr("fill", function (d) {
            return d.color
        });

    var table = new Plottable.Components.Table([
        [yAxisParameters, plot],
        [null, xAxisDate]
    ]);

    table.renderTo("svg#heatmap");

Однако он просто создает ректы с шириной 0, поэтому что-то не работает на оси х (дата):

<rect fill="green" width="0.0000028312475887345677"
    x="-0.0000014156237943672838" height="81.66666666666667" y="0">  
</rect>

1 ответ

Похоже, вы должны указать.x2(), например

.x2(function (d) {
            return new Date().setHours(d.date.getHours() + 8);
}, xScale)
Другие вопросы по тегам