Highcharts:使图例符号为正方形或矩形

Man*_*han 11 javascript css jquery highcharts

我正在尝试将图例符号设置为线图的正方形或矩形.

在此输入图像描述

这条线很好.我不想改变线宽.HTML:

<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$(function () {
    var chart = new Highcharts.Chart({
        chart: {
        renderTo: 'container',
        type: 'line',
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        plotOptions: {
            series: {
                marker: {
                    enabled: false
                }
            }
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            symbolHeight:100,
            borderWidth: 0
        },

        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }]
    });
});
Run Code Online (Sandbox Code Playgroud)

我尝试在图例中添加symbolHeight.但它不起作用.

legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            symbolHeight:100,
            borderWidth: 0
        },
Run Code Online (Sandbox Code Playgroud)

如何增加线符号的高度使其成为矩形或方形?

Rom*_*lov 19

可以通过配置实现方形图例符号.只需设置legend.symbolRadius值即可0.

JSFiddle演示:https://jsfiddle.net/9bzy2qzq/

  • 您的演示包含一个柱状图,但要求提供折线图的解决方案。将类型更改为“行”时,它显然不起作用。 (2认同)

Shw*_*ogg 9

这是问题的副本:如何访问legendSymbols并在HighCharts中更改其形状

它有一个类似的答案和另外两个:

第一选择:

Highcharts.seriesTypes.line.prototype.drawLegendSymbol = 
Highcharts.seriesTypes.area.prototype.drawLegendSymbol;
Run Code Online (Sandbox Code Playgroud)

第二种选择:

您可以更改stroke-widthpath元素的属性.

我们可以为Highcharts提供在绘制图表时绘制的函数.由于redraw未在第一张图纸上调用,因此load需要事件

chart: {
    events: {
        load: function () { 
            $(".highcharts-legend-item path").attr('stroke-width', 10);
        },
        redraw: function () {
            $(".highcharts-legend-item path").attr('stroke-width', 10);
        }
    }
},
Run Code Online (Sandbox Code Playgroud)


Anc*_*wal 7

您可以按如下方式制作假系列,并为其提供提供者标记.

$(function () {
var chart = new Highcharts.Chart({
    chart: {
    renderTo: 'container',
    type: 'line',
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    plotOptions: {
        series: {
            marker: {
                enabled: true
            }
        }
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'middle',

        //borderWidth: 0
    },

    series: [{

        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        showInLegend : false,


        marker:{enabled:false}

    },{
        name : "testing",
        data : {},
        marker : {symbol : 'square',radius : 12 }
    }
            ]
});
});
Run Code Online (Sandbox Code Playgroud)

工作演示:DEMO


Roc*_*Gom 6

所有答案都是正确的,但我发现了一个漂亮的黑客方法。用正方形替换图例矩形符号:

legend: {
   symbolHeight: 12,
   symbolWidth: 12,
   symbolRadius: 6
}
Run Code Online (Sandbox Code Playgroud)

JsFiddle

  • 正如问题中所指定的,这不适用于折线图 (3认同)