0

var s1 = "{ name : \'Space1\', data :[5, 3, 4, 7] },";
var s2 = "{ name :\'Space2\', data:[5, 4, 7] },";
var s3 = "{ name : \'Space3\', data:[5, 3, 7] }";
var series = s1+s2+s3;

var chartdata = {
	  chart: {
            type: 'column'
        },
        title: {
            text: 'Cost/Env'
        },
        xAxis: {
            categories: ['Prod', 'Test', 'Dev', 'Sandbox']
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Cost of apps'
            },
            stackLabels: {
                enabled: true,
                style: {
                    fontWeight: 'bold',
                    color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                }
            }
        },
        legend: {
            align: 'right',
            x: -30,
            verticalAlign: 'top',
            y: 25,
            floating: true,
            backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
            borderColor: '#CCC',
            borderWidth: 1,
            shadow: false
        },
        tooltip: {
            formatter: function () {
                return '<b>' + this.x + '</b><br/>' +
                    this.series.name + ': ' + this.y + '<br/>' +
                    'Total: ' + this.point.stackTotal;
            }
        },
        plotOptions: {
            column: {
                stacking: 'normal',
                dataLabels: {
                    enabled: true,
                    color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                    style: {
                        textShadow: '0 0 3px black'
                    }
                }
            }
        },
        series: [{}]
   
};

chartdata.series.data = series;
$('#stackedBar1').highcharts(chartdata);
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="stackedBar1" style="display: inline; float: left; height: 300px; margin: 0px;"></div>

我使用 Ko、highcharts 和使用 JSON 的数据创建了一个仪表板。我必须创建一个堆叠条形聊天,其中系列数据针对每个类别动态变化。示例 cat1 可能有 3 个系列对象,而 cat2 可能有 0 个,cat3 可能有 10 个等等......我有两个问题,1.如何将此动态 JSON 对象包含到系列对象中。(我参考了链接,我得到了解决方案,我必须尝试它们) 2. 一旦我点击特定位置(颜色)的条形聊天,我必须显示详细信息,(我已经设计并目前显示在我的仪表板,我需要切换到该部分)。他们是否有任何信息可用于处理这种情况。

在此先感谢,香卡尔

4

1 回答 1

1

1)您可以使用 ajax 加载 json(例如 $.getJSON)并加载数据。请注意,数据必须采用正确的格式。

有关使用数据的更多信息,您可以在此处找到

2)您可以使用工具提示格式化程序自定义内容并在悬停时打印。

参考点击事件,您可以通过point.events.click添加此操作,然后显示您的自定义弹出窗口/ div 等。

于 2015-07-13T09:58:16.530 回答