1

我想在网格中定位 pointLabel,并且 pointLabel 与条形图对齐,如下所示。

这是链接

但是 pointLabel 无法使用偏移量定位,因此在某些时候标签打印出网格。

如何将 pointLabel 对齐到左侧?

#chart2 .jqplot-point-label {

font-size:.68em;
color:#D4D0C8;
margin:0 0  0 auto;
//margin-left:25px;
//padding: 1px 3px;
background-color: #000000;
}
</style>


function drawBarChart(arr_val, count){

if( arr_val != '' && count != 0){       
        var result = arr_val.split("|");

        var dataBarChart1= new Array();
        var ticks = new Array();
        var dataOut = new Array();

        var temp=0;
        var secondArr = 0;

        for(var i=0; i < result.length; i++){
            if( i % count != 0){
                    temp += parseInt(result[i]);                
            }               
            if( i % count == 0 && count <= i) {
                ticks[secondArr] = result[i - count];
                dataBarChart1[secondArr] = temp;
                dataOut[secondArr] =  result[i - count] + "   " + temp;
                //alert(ticks[secondArr] );
                //alert(dataBarChart1[secondArr]);
                secondArr++;
            }
        }

    plot2 = jQuery.jqplot('chart2',  [dataBarChart1], {
        seriesDefaults: {
            renderer:jQuery.jqplot.BarRenderer,
            shadowAngle: 135,
            rendererOptions:{
                varyBarColor:true,
                barWidth: 3,
                barDirection: 'horizontal',
                showMarker: false

            },
            pointLabels: {  show: true, location:'s', labels:dataOut, ypadding:3, hideZeros:true, edgeTolerance: -30
            },


        },
        grid:{
            drawGridlines: true,
            background: '#000000',
            borderColor:'#D54206',
            drawBorder: true, 
            shadow: false,

            //borderWidth: 1.5,

        },      
         axes:{
            //show:false,
            //pid:0,
             axesDefaults: {

                },
                        yaxis:{
                         renderer: jQuery.jqplot.CategoryAxisRenderer,      
                         ticks:ticks,

                         rendererOptions: {  tickRenderer: jQuery.jqplot.AxisTickRenderer, 
                                        tickOptions: { showLabel:false, showMark: false,showGridline:false  },
                         },
                         borderColor:'#A3D0DB'
                        },
                        xaxis: {
                             ticks: [0,30],
                                tickOptions:{
                                         formatString:'%d',showGridline:true
                                    }, 
                            showTicks:false,
                          borderColor:'#A3D0DB'
                        },

                        x2axis: {
                            borderColor:'#000000' 
                        },
                        y2axis: {
                            borderColor:'#000000' 
                        },



            },


    });
  }
}
4

1 回答 1

0

我已经解决了!

只需编辑“jqplot.pointLabel.js”文件。

            var ell = xax.u2p(pd[i][0]) + p.xOffset(elem, location);

            //define someother location character yourself
            //and then just fix the ell which you want to locate position
            if( location == 'u'){
                ell = 13;   
            }

            var elt = yax.u2p(pd[i][1]) + p.yOffset(elem, location);
于 2013-01-17T09:07:44.803 回答