即使设置 numberColumns :3 后,JQPlot 图例也不显示在多列中

标签 jqplot legend

我想在多列和一行中显示图例,但即使在图例渲染器选项中设置这些属性后,它也不会更改,并且仅在一列中显示。 这是我正在使用的代码:

 $(document).ready(function () {
    var obj = JSON.parse("[[65,68],[88,59],[78,68],[68,69],[88,88],[75,66]]");
            $.jqplot.config.enablePlugins = true;
            plot2 = $.jqplot('chart1', obj, {
                animate: true,
                seriesDefaults: {
                    renderer: $.jqplot.BarRenderer,
                    rendererOptions: {
                        barWidth: 25,
                        barPadding: 2,
                        shadow: false,
                    },
                    pointLabels: {
                        show: true,
                    }
                },
                series: [
                 { label: 'English' },
                 { label: 'Hindi' },
                 { label: 'Maths' },
                 { label: 'Science' },
                 { label: 'Computers' },
                 { label: 'History' }
                ],

                seriesColors: ['#C0504D', '#1F497D', '#4BACC6', '#8064A2', '#9BBB59', '#F79646', '#948A54'],
                grid: {
                    backgroundColor: "#FFFFFF",
                    gridLineColor: '#000000',
                    drawBorder: false,
                    shadow: false,
                    gridLineWidth: 0.5
                },
                legend: {

                    show: true,

                    location:'s![enter image description here][1]',
                    placement: 'outsideGrid',
                    shrinkGrid: true,
                    rendererOptions: {
                        numberColumns: 3,
                        numberRows : 1
                    }
                },
                axes: {
                    xaxis: {
                        renderer: $.jqplot.CategoryAxisRenderer,
                        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                        ticks: ['FA 1', 'FA 2'],
                        tickOptions: {
                            angle: -90,
                            textColor: "#000000",
                            showGridline: true
                        },
                    },
                    yaxis: {
                        min: '0',
                        max: '100',
                        renderer: $.jqplot.CanvasAxisTickRenderer,
                        rendererOptions: { tickRenderer: $.jqplot.CanvasAxisTickRenderer },
                        ticks: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
                        tickOptions: {
                            textColor: "#000000",
                            showGridline: true,
                            formatString: "%d"
                        }
                    }

                }
            });

});

最佳答案

设置renderer: $.jqplot.EnhancedLegendRenderer在图例选项中

JSFIDDLE

代码

$(document).ready(function () {
    var obj = JSON.parse("[[65,68],[88,59],[78,68],[68,69],[88,88],[75,66]]");
            $.jqplot.config.enablePlugins = true;
            plot2 = $.jqplot('chart1', obj, {
                animate: true,
                seriesDefaults: {
                    renderer: $.jqplot.BarRenderer,
                    rendererOptions: {
                        barWidth: 25,
                        barPadding: 2,
                        shadow: false,
                    },
                    pointLabels: {
                        show: true,
                    }
                },
                series: [
                 { label: 'English' },
                 { label: 'Hindi' },
                 { label: 'Maths' },
                 { label: 'Science' },
                 { label: 'Computers' },
                 { label: 'History' }
                ],

                seriesColors: ['#C0504D', '#1F497D', '#4BACC6', '#8064A2', '#9BBB59', '#F79646', '#948A54'],
                grid: {
                    backgroundColor: "#FFFFFF",
                    gridLineColor: '#000000',
                    drawBorder: false,
                    shadow: false,
                    gridLineWidth: 0.5
                },
                legend: {
                     renderer: $.jqplot.EnhancedLegendRenderer, 
                    show: true,

                    location:'s![enter image description here][2]',
                    placement: 'outsideGrid',
                    shrinkGrid: true,
                    rendererOptions: {
                                numberRows : 1
                    }
                },
                axes: {
                    xaxis: {
                        renderer: $.jqplot.CategoryAxisRenderer,
                        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
                        ticks: ['FA 1', 'FA 2'],
                        tickOptions: {
                            angle: -90,
                            textColor: "#000000",
                            showGridline: true
                        },
                    },
                    yaxis: {
                        min: '0',
                        max: '100',
                        renderer: $.jqplot.CanvasAxisTickRenderer,
                        rendererOptions: { tickRenderer: $.jqplot.CanvasAxisTickRenderer },
                        ticks: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
                        tickOptions: {
                            textColor: "#000000",
                            showGridline: true,
                            formatString: "%d"
                        }
                    }

                }
            });

});

如果您设置 numberColumns : 1图例是这样的FIDDLE 它只会显示前 3 个系列

关于即使设置 numberColumns :3 后,JQPlot 图例也不显示在多列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157842/

相关文章:

jquery - jqPlot - 在日期上将填充值设置为零

javascript - D3.js 路径转换中这句话的确切含义是什么

r - 某些数据框缺少scale_fill_distiller ggplot图例,但其他数据框没有

r - 为 ggplot 图例动态创建表达式?

javascript - 使用 jquery 显示图例

events - jqPlot 中的键盘事件左/右箭头

javascript - Jqplot 仅显示几个 x 轴刻度

javascript - 动态向div添加新的jqPlot图表使旧的图表变空

javascript - Dimple JS 交互式图例 - 在加载时隐藏一些图例项目

r - 如何更改ggplot2中图例文本的大小?