首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向flot数据添加自定义属性

向flot数据添加自定义属性
EN

Stack Overflow用户
提问于 2013-07-23 19:38:11
回答 3查看 2.9K关注 0票数 4

问题所在

如果我可以传递一些在触发plotclick事件时想要访问的补充数据,那么在将数据传递到flot时会非常方便。

我的数据

以下是一些标准数据;

代码语言:javascript
复制
[{label: 'first', data: 5, color: '#123'},
{ label: 'first', data: 10, color: '#456'}]

我希望能够做一些事情,比如;

代码语言:javascript
复制
[{label: 'first', data: 5, color: '#123', my_custom_attribute: 'some data'},
{ label: 'first', data: 10, color: '#456', my_custom_attribute: 'some more data'}]

所以在我的plotclick事件中我可以这样做;

代码语言:javascript
复制
$('chart').bind('plotclick', function(event, pos, item) {
  console.log(item.series.my_custom_attribute) //Or something to that effect
});

我尝试过的东西

我试着在我的plotclick事件中插入上述代码并查看返回的item内容,但它似乎并没有存储my_custom_attribute

我已经通读了https://github.com/flot/flot/blob/master/API.md上的文档,但没有发现任何相关信息。

我在谷歌和这里搜索了答案,但找不到适合我需要的答案。

更新

感谢Khawer提供了一个解决方案,这对我来说仍然不起作用;

这是我传递的数据;

代码语言:javascript
复制
[{breakdown: "test", color: "#00A4D3", data: 1.5, label: "History"},
 {breakdown: "test", color: "#1464F6", data: 0, label: "Geography"}]

但是item的输出中没有出现breakdown属性。

图表的其他所有内容似乎都可以正常工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-30 10:43:02

尝试此

如果您通过初始化图表时使用的原始data变量查找自定义数据。数据还会在那里。由于某些原因,数据不能直接通过item访问...它似乎被删除了。

代码语言:javascript
复制
var data = [
{ label: "Series1",  data: [[1,1]],  myData: "test 1"},
{ label: "Series2",  data: [[1,1]],  myData: "test 2"},
{ label: "Series3",  data: [[1,1]],  myData: "test 3"},
{ label: "Series4",  data: [[1,1]],  myData: "test 4"},
{ label: "Series5",  data: [[1,1]],  myData: "test 5"},
{ label: "Series6",  data: [[1,5]],  myData: "test 6"}
];


$.plot($("#placeholder"), data, {
    series: {
        pie: { 
            show: true
        }
    },
    grid: {
        hoverable: true,
        clickable: true
    }
});



$("#placeholder").bind("plotclick", function (event, pos, item) {
if (item) { 
       console.log(data[item.seriesIndex]);
    }
});

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2013-07-23 20:02:49

你说对了。您可以根据自己的喜好使用自定义数据参数

代码语言:javascript
复制
data = [{ data:data1, label:"fixed", lines:{show:true}, my_custom_attribute: 'somedata'}];

然后,您可以按如下方式获取自定义数据

代码语言:javascript
复制
$("#placeholder").bind("plotclick", function (event, pos, item) {
        if (item) { 
            alert(item.series.my_custom_attribute);
        }
    });

FIDDLE

票数 3
EN

Stack Overflow用户

发布于 2017-04-13 15:11:48

console.log(dataitem.seriesIndex);

对我来说很管用。

较新版本的(0.8)像这样的自定义变量可以直接在系列级别中使用

console.log(item.series.my_custom_attribute);

但是对于较低版本的seriesIndex方式应该是有效的。

感谢@送奶人

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17809126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档