Можно ли использовать диаграмму тепловых карт Highcharts с использованием Rally SDK? - PullRequest
1 голос
/ 21 мая 2019

Я создаю пользовательское HTML-приложение для ралли. Я хотел бы создать диаграмму тепловой карты. Как я могу это сделать?

Я пытался создать Rally Chart типа 'heatmap' (код ниже). В результате я вижу сообщение об ошибке 404 в консоли:

GET https://rally1.rallydev.com/slm/panel/highcharts/heatmap.js?_dc=1558434971290 404

Когда я пытаюсь использовать библиотеку Highcharts напрямую, я получаю конфликт с https://rally1.rallydev.com/apps/2.1/lib/analytics/analytics-all.js - высокие графики загружаются дважды. В результате, аналитика lib не загружается, я думаю, и я получаю сообщение об ошибке типа Lumenize.Time undefined.

    this.chart = this.add(
            Ext.create('Rally.ui.chart.Chart', {

                loadMask: false,
                chartData: {
                    series: [{
                        type:'heatmap',
                        name: 'Sales per employee',
                        borderWidth: 1,
                        data: [[0, 0, 10], [0, 1, 19], [0, 2, 8], [0, 3, 24], [0, 4, 67], [1, 0, 92], [1, 1, 58], [1, 2, 78], [1, 3, 117], [1, 4, 48], [2, 0, 35], [2, 1, 15], [2, 2, 123], [2, 3, 64], [2, 4, 52], [3, 0, 72], [3, 1, 132], [3, 2, 114], [3, 3, 19], [3, 4, 16], [4, 0, 38], [4, 1, 5], [4, 2, 8], [4, 3, 117], [4, 4, 115], [5, 0, 88], [5, 1, 32], [5, 2, 12], [5, 3, 6], [5, 4, 120], [6, 0, 13], [6, 1, 44], [6, 2, 88], [6, 3, 98], [6, 4, 96], [7, 0, 31], [7, 1, 1], [7, 2, 82], [7, 3, 32], [7, 4, 30], [8, 0, 85], [8, 1, 97], [8, 2, 123], [8, 3, 64], [8, 4, 84], [9, 0, 47], [9, 1, 114], [9, 2, 31], [9, 3, 48], [9, 4, 91]],
                        dataLabels: {
                            enabled: true,
                            color: '#000000'
                        }
                    }]
                },

                chartConfig: {

                    chart: {
                        marginTop: 40,
                        marginBottom: 80,
                        plotBorderWidth: 1
                    },


                    title: {
                        text: 'Sales per employee per weekday'
                    },

                    xAxis: {
                        categories: ['Alexander', 'Marie', 'Maximilian', 'Sophia', 'Lukas', 'Maria', 'Leon', 'Anna', 'Tim', 'Laura']
                    },

                    yAxis: {
                        categories: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
                        title: null
                    },

                    colorAxis: {
                        min: 0,
                        minColor: '#FFFFFF',
                        //maxColor: Highcharts.getOptions().colors[0]
                    },

                    legend: {
                        align: 'right',
                        layout: 'vertical',
                        margin: 0,
                        verticalAlign: 'top',
                        y: 25,
                        symbolHeight: 280
                    },

                    tooltip: {
                        formatter: function () {
                            return '<b>' + this.series.xAxis.categories[this.point.x] + '</b> sold <br><b>' +
                                this.point.value + '</b> items on <br><b>' + this.series.yAxis.categories[this.point.y] + '</b>';
                        }
                    },

                }
            })
        );

1 Ответ

0 голосов
/ 21 мая 2019

Проблема, с которой вы столкнетесь, заключается в том, что Highcharts v3.0.10 встроен в код аналитики. Это было сделано для того, чтобы была известная библиотека Highcharts, используемая с добавленным кодом Lumenize - то есть они совпадают. Библиотека аналитики загружается динамически, если SDK не может найти библиотеку Highcharts при запуске (то есть window.Highcharts не определено).

Результатом этого является то, что выглядит довольно глупо менять расположение Highcharts для добавления тепловых карт. Кто-то, кто лучше в загрузке / перегрузке библиотеки JavaScript, мог бы иметь другое представление. Вам нужно будет загрузить файл heatmap.js в ваше приложение после приложения, запущенного (в «запуске»?), Чтобы обойти динамическую загрузку.

Я знаю, что это не имеет прямого отношения к вашему вопросу Highcharts, но если вам нужна просто «тепловая карта», а не обязательно тепловая карта Highcharts, я начал использовать d3 для визуализации вещей в Rally. Вот пример тепловой карты d3, если вы заинтересованы: http://bl.ocks.org/tjdecke/5558084

Я проделал небольшую работу, чтобы заставить d3 работать в пользовательском приложении Rally. На моем github есть несколько примеров, но посмотрите здесь: https://github.com/nikantonelli/Radial-Density

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...