我遇到了另一个小的堆叠条形图问题:填充绘图时,flot自上而下添加图例条目,自下而上堆叠条形图。通过这种方式,图例的顺序与条形图完全相反。
flot API允许按照添加标签的顺序、字母顺序或通过提供自定义排序功能对标签进行排序。我尝试过提供一个总是返回-1的排序函数,这样原始排序就会颠倒,但由于某种原因,在使用堆叠条形图时,似乎根本不会评估sorted
选项。至少我在那里尝试的任何东西(ascending
、descending
、false
,我自己的函数)都对实际的传说没有任何影响。
我在http://jsfiddle.net/YvGZu/1/说明了问题。
编辑:经过更多测试。。。可能是图例排序被破坏了吗?
我在几天内碰巧遇到了和您相同的问题。经过一番试探,我意识到处理图例排序的承诺是最近的(2012年7月),并且没有包含在我使用的jquery.flot.js版本中。
从检查Fiddle上的flot资源来看,你似乎也是如此。如果你将flot-js文件更新为包含排序算法的文件,你的问题很可能会得到解决,就像我的问题一样。(好吧,我手动打补丁,因为我有其他实验性的改变。)
我猜你接下来会遇到和我一样的障碍,那就是现有的排序代码只能按字母顺序排序,或者使用只能检查标签文本和颜色代码的比较器。这对我来说还不够好——我想分配一个任意排序顺序的服务器端。为了实现这一点,我在我的系列标签中添加了一个隐藏的排序顺序字符串:
label: '<a class="hiddenOrder">2</a>foo'
然后将Flot占位符中的a
块设置为隐藏样式(编辑:还需要将样式应用于工具提示,这些工具提示不是包含在Flot占位符内的)。
#flotPlaceholder a.hiddenOrder,
#flotTooltip a.hiddenOrder
{display:none;}
我为你提供了fiddle,并包含了我的排序技术,这样你就可以尝试一下,但不幸的是,我到GitHub的资源链接似乎在fiddle中不起作用。不过,您应该能够在本地启动它。
祝你好运!