Смешанный график не отображает оба графика одновременно. js - PullRequest
0 голосов
/ 19 марта 2020

Я создаю диаграмму. js график в смешанном режиме, где я пытаюсь отобразить гистограмму и линейный график. Проблема в том, что гистограмма появляется только когда я комментирую или удаляю отрезок линии, в противном случае с обоими отрезками (столбец и линия) я получаю только линейный график. Я попытался объединить оба раздела под одним набором данных, но потом ничего не отображается. Нужно направление в выяснении вопроса. Мой js выглядит следующим образом:

<canvas id="chart"></canvas>
<script>      

 var file = 'TempData.csv';
        d3.csv(file).then(makeChart);
        function makeChart(days) {
            var dayLabel = days.map(function(d){return d.Time});
            var dayTemp = days.map(function(d) {return d.Value});
            var dayHeap = days.map(function(d){return d.heap});
            //Set Min for better visiable range
            var minX = d3.min(dayTemp);
            minX -= 10;

            var chart = new Chart('chart', {
                type: 'bar',
                data: {
                    labels: dayLabel,
                    datasets: [
                        {
                            data: dayTemp,
                            backgroundColor: "rgba(217,83,79,0.75)"
                        }
                    ]
                 },
              type: 'line',
                data: {
                    labels: dayLabel,
                    datasets: [
                        {
                            data: dayHeap,
                            backgroundColor: "rgba(51,51,51,0.5)"
                         }
                    ]

                },
                options: {
                    title: {
                        display: true,
                        text: file
                    },
                    legend: {
                        display: true
                    },
                    scales: {
                        xAxes: [
                            {
                                ticks: {
                                    suggestedMin: minX,
                                }
                            }
                        ]
                    }
                }
            });
        }
    </script>

, а мой Tempdata.csv выглядит следующим образом:

Time,Value,heap
Sun,80,190
Mon,90,180
Tue,70,150
Wed,80,120
Thu,95,170
Fri,89,199
Sat,75,160

1 Ответ

0 голосов
/ 19 марта 2020

удалось разрешить линию и полосу стека в одном наборе данных. Ниже приводится рабочий код.

<script>
            var file = 'TempData.csv';
            d3.csv(file).then(makeChart);
            function makeChart(days) {
                var dayLabel = days.map(function(d){return d.Time});
                var dayTemp = days.map(function(d) {return d.Value});
                var dayHeap = days.map(function(d){return d.heap});
                //Set Min for better visiable range
                var minX = d3.min(dayTemp);
                minX -= 10;

                var chart = new Chart('chart', {
                    type: 'bar',
                    data: {
                        labels: dayLabel,
                        datasets: [
                            {
                                type:'bar',
                                data: dayTemp,
                                backgroundColor: "rgba(217,83,79,0.75)"

 },
                            {
                                type:'line',
                                data:dayHeap,
                                backgroundColor: "rgba(51,51,51,0.5)"
                            },
                        ]
           //         },

                    },
                    options: {
                        title: {
                            display: true,
                            text: file
                        },
                        legend: {
                            display: true
                        },
                        scales: {
                            xAxes: [
                                {
                                    ticks: {
                                        suggestedMin: minX,
                                    }
                                }
                            ]
                        }
                    }
                }
            )};
        </script>
...