2012-04-27 37 views
1

我有两个垂直条形图(使用jqPlot创建)在我的HTML页面。jqPlot - 如何使垂直线条放大,因为我放大

它们类似于下面的例子(除矿采用代替线柱):

http://www.assembla.com/code/MUN/subversion/node/blob/js/jqplot/examples/zoomProxy.html?rev=985

在上面的例子中,底部图表用于控制顶部之一。矿山工作方式相同。

通常我的两个图表都包含超过200个x轴条目(它们传递相同的数据集),每个条的宽度设置为6px。

问题是,当我放大时,酒吧保持薄(即6px)。我想实现的就是让酒吧加宽我放大我试过设置barWidth为null如下:

// BarRenderer. 
rendererOptions : { 
    ... 
    barWidth: null, // width of the bars. null to calculate automatically. 
    ... 
} 

然而,这似乎并没有做什么,它说。

有没有人有一个很好的解决这个问题?

+0

您是否尝试直接设置宽度?如果设置为null不起作用,那么我假设你可以根据缩放级别缩放它们,假设第一个开始宽度(例如6,如你的情况)。 – Boro 2012-04-27 15:22:06

+0

@Boro我的两块地块都设置为900px宽。如果我可以在用户执行缩放时查找顶部绘图中将显示多少条线条,那么我应该能够根据画布大小计算每个线条的宽度。所以我看到类似这样的东西会工作:捕捉缩放事件→找到要绘制的条数→计算每个条宽度→更新jqPlot选项以使用这个新的条宽→重绘。我会做更多的调查。 – jpen 2012-04-28 09:54:17

+0

你的想法是对的。这是要走的路。我只担心你不能避免改变脚本本身的麻烦,因为我昨天无法找到缩放事件。我认为所有东西都只是画了,正如我们已经在http://stackoverflow.com/q/10334135/613495中讨论过的那样。如果你添加了被称为例如在这个'drawZoomBox()''方法的开始和结尾,你应该没问题,如果你得到满意的解决方案,请分享一下。我认为缩放事件(和其他)是'jqPlot'家伙在未来应该考虑添加的重要事情。 – Boro 2012-04-28 10:21:01

回答

0

作为临时解决方法,您可以尝试在issue 513中建议的修改。 (pull request被拒绝,因为应该有更优化的方式来做到这一点。)

+0

感谢布鲁诺我已经尝试了两种修改,但不幸的是,他们让我的垂直酒吧太宽(即使没有进行缩放)。 – jpen 2012-05-03 08:15:17

0

我必须说我没有解决这个问题。但是,如果您设置constrainZoomTo = 'y',用户可以看到正在发生的事情,也就是说他只会放大情节的y部分,可能会有一些帮助。

其他解决方案是你自己写这个行为。但说实话,我不知道从哪里开始。

0

即使可以使用条形图进行缩放,无论您放大多深,条宽将相同,缩放对于折线图而言特别意味着满。

+0

是的,这是真的。但在我的情况下,我的水平线(使用canvasOverlay)放在我的垂直条上,如果每个条宽一点(例如15px),它可以更容易地看到线条和酒吧相交现在很难看到 – jpen 2012-05-02 12:45:27