gpt4 book ai didi

svg - 在 Dimple 中,您如何更改图例中系列的顺序?

转载 作者:行者123 更新时间:2023-12-04 20:21:10 29 4
gpt4 key购买 nike

我有一个带有 ecode 的酒窝图

var svg = dimple.newSvg("#chartContainer", 800, 600);

var myChart = new dimple.chart(svg, data);
myChart.setBounds(120, 30, 750, 550);
var x = myChart.addCategoryAxis("x", "time");
x.showGridlines = true;
x.addOrderRule("time");

var y = myChart.addMeasureAxis("y", "height", null);
//.overrideMax=(max);
y.overrideMin = 0;
y.overrideMax = 1000;
y.tickFormat = "d";

var s = myChart.addSeries("row", dimple.plot.line);
s.lineWeight = 1;
s.lineMarkers = true;
s.addOrderRule(function(n){
console.log('n:', n);
return n.row;
});


myChart.addLegend(0, 0, 900, 100, "left", s);
myChart.draw();

和传说顺序是不稳定的。

数据是在形式
[
},
{
"row": "1",
"height": -1,
"time": 607
},
{
"row": "1",
"height": -11,
"time": 709
},
{
"row": "1",
"height": -22,
"time": 809
},
{
"row": "1",
"height": -32,
"time": 910
},
{
"row": "1",
"height": -42,
"time": 1011
},
{
"row": "1",
"height": -52,
"time": 1113...

]。

我希望行系列在图例中按顺序排列。

谢谢。

最佳答案

覆盖 _getEntries 方法的另一种可能不太脆弱的方法是使用 function.apply() 来利用原始方法

// first, store a copy of the original _getEntries method.
legend._getEntries_old = legend._getEntries;

// now override the method
legend._getEntries = function()
{
// but call the original version,
// then sort the returned array before returning it.
return legend._getEntries_old.apply(this, arguments).reverse();
}

顺便说一句:谢谢,戴夫,你的原始答案 - 面积图中的图例与面积形状的堆叠顺序相反,这让我发疯。

关于svg - 在 Dimple 中,您如何更改图例中系列的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23530434/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com