как изменить метку на горизонтальной гистограмме с накоплением jqplot

Я использую jqplot для создания горизонтальной гистограммы с накоплением, используя код, показанный здесь:

perc_data = [[[6, "1"]], [[92, "1"]], [[1, "1"]], [[1, "1"]]];
series_array = [ { label: "Mud", color: "#ccaa00"}, { label: "Sand", color: "#ffeecc"}, 
                 { label: "Gravel", color: "#dddddd"}, { label: "Rock", color: "#664400"} ];
var perc_chart = $.jqplot('perc_div', perc_data, {
    stackSeries: true,
    seriesDefaults: {
        renderer:$.jqplot.BarRenderer,
        shadowAngle: 135,
        rendererOptions: {  barWidth: 25,
                            barDirection: 'horizontal',
        }
    },
    series: series_array,
    axes: {
        yaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            rendererOptions: {  tickRenderer: $.jqplot.AxisTickRenderer, 
                                tickOptions: {  mark: null,
                                                fontSize: 12
                                             }
            }
        },
        xaxis: {
            min: 0,
            max: 100,
            numberTicks: 6
        }
    },
    grid: {
        drawGridlines: false,
        drawBorder: false,
        shadow: false
    }
});

В результате столбчатая диаграмма выглядит следующим образом:

введите здесь описание изображения

Далее я хотел бы изменить метку панели с «1» на «Моя метка». Я бы подумал, что могу просто изменить perc_data с его исходного значения на следующее:

perc_data = [[[6, "My Label"]], [[92, "My Label"]], [[1, "My Label"]], [[1, "My Label"]]];

Но это приводит к пустой гистограмме:

введите здесь описание изображения

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно и как я могу настроить эту метку.

Спасибо.


person sfletche    schedule 05.01.2012    source источник


Ответы (1)


Используйте параметр галочки (второй пример на этой странице):

perc_data = [[[6, "1"]], [[92, "1"]], [[1, "1"]], [[1, "1"]]];
ticks = ["My Label"];

series_array = [ { label:'Mud', color:"#ccaa00"}, { label:"Sand", color:"#ffeecc"}, { label:"Gravel", color:"#dddddd"}, { label:"Rock", color:"#664400"} ];

var perc_chart = $.jqplot('chart1', perc_data, {
    stackSeries: true,
    seriesDefaults: {
        renderer:$.jqplot.BarRenderer,
        shadowAngle: 135,
        rendererOptions: {  barWidth: 25,
                            barDirection: 'horizontal',
        }
    },
    series: series_array,
    axes: {
        yaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            rendererOptions: {  tickRenderer: $.jqplot.AxisTickRenderer, 
                                tickOptions: {  mark: null,
                                                fontSize: 12
                                             }
            },
            ticks: ticks
        },
        xaxis: {
            min: 0,
            max: 100,
            numberTicks: 6
        }
    },
    grid: {
        drawGridlines: false,
        drawBorder: false,
        shadow: false
    }
});

введите здесь описание изображения

Кстати, { label="Mud", color="#ccaa00"} недействителен, javascript должен быть { label:"Mud", color:"#ccaa00"}

person Mark    schedule 06.01.2012
comment
Спасибо, Марк! (И спасибо за обнаружение опечатки js — это было частью попытки упростить код для этого примера — я обновил свой пример с вашим исправлением.) - person sfletche; 10.01.2012
comment
+1 @mark Это помогло мне понять, как ограничить до 100 (я пытался использовать forceTickAt100: true, но это не работает.) Спасибо. - person R. Mo; 04.04.2014