2013-03-06 81 views
5

我是jqplot的新手,当我想绘制条形图时,x轴是日期,间隔是1天。这是我的代码的一部分:jqplot中太大的条宽

 axesDefaults:{                 
      tickRenderer: $.jqplot.CanvasAxisTickRenderer,        
     tickOptions:{ 
      fontSize:'10pt', 
     },                   
    },                    
    axes:{                   
     xaxis:{ 
      renderer:$x_renderer,             
      tickOptions:{ 
       formatString:'%Y-%#m-%#d',           
      }, 
      rendererOptions:{              
       tickOptions:{ 
        angle:-90,              
       }                 
       },                  
      label:'$label', 
      tickInterval:'86400000', 
     }, 
     yaxis:{                  
      tickOptions:{ 
       formatString:'%.2f',             
      },                  
      autoscale:true               
     }, 
    },                    
    highlighter:{ 
     show:true,                 
    }, 

但我觉得每个酒吧的宽度太大,无法涵盖对方。如何解决它?

谢谢!

回答

9

AnthonyLeGovic答案确实是正确的,但如果你需要根据数据点的数量来改变列宽,你可以做到以下几点:

// Get the size of the container of the plot 
var width = jQuery(containerName).width(); 

// Divide by the number of data points. 
width = width/number_of_data_points; 

// Reduce the width to a % of the total for each data point. 
width = (width * 20)/100; 

// Set the value 
$.jqplot(containerName, [data], 
{ 
    // whatever 
    // ... 

    seriesDefault: 
    { 
     renderer: $.jqplot.BarRenderer, 
     rendererOptions: { barWidth: width } 
    } 

    // whatever 
    // ... 
} 

请注意,我没有考虑图例的宽度。图例宽度只能在绘图后获得,因此如果要考虑甚至图例的宽度来缩小列宽,则必须在绘图之后执行,然后重新绘制。

我准备了一个fiddle,它显示了一个例子。

希望它有帮助。

10

您可以在一系列选项指定:

seriesDefault:{ 
    renderer: $.jqplot.BarRenderer, 
    rendererOptions: { 
     barWidth: 5 
    } 
} 

不要忘了包括barRenderer插件。 有关条形图更单证上jqplot请看看:Jqplot documentation

+0

谢谢您的回答。有用。但是当数据点的数量增加时,我不确定宽度是否合适。我会动态计算条的宽度,但是如果有更好的方法来调整图表以便更好地显示? – dusiliang 2013-03-07 01:32:31

2

我在下面的代码中添加了我得到的结果。 我的宽度背后的原因太大了,因为条宽没有设置为系列默认块。

seriesDefault:{ 
    renderer: $.jqplot.BarRenderer, 
    rendererOptions: { 
      barWidth: 5 
    } 
} 

感谢:AnthonyLeGovic