PubNub EON 图表未呈现数据
PubNub EON chart not Rendering Data
我正在尝试使用 PUBNUB EON charting library 渲染样条图表。我不明白这里出了什么问题。我可以在控制台中看到数据,但图表未呈现,只有 x 和 y 轴线。我从 python SDK 获取数据并通过 javascript SDK 订阅。控制台没有错误信息。
我的 python 密码是
def counterVolume(data):
for each in data:
y = each.counter_volume
data_clean = json.dumps(y, indent=4, separators=(',', ': '))
print pubnub.publish(channel='channel', message= data_clean)
counterVolume(data)
我的订阅javascript功能是
var data;
var pubnub = PUBNUB.init({
publish_key: 'pub',
subscribe_key: 'subf'
});
var channel = "c3-spline";
eon.chart({
history: true,
channel: 'channel',
flow: true,
generate: {
bindto: '#chart',
data: {
x: 'x',
labels: false
},
axis : {
x : {
type : 'timeseries',
tick: {
format: '%m-%d %H:%M:%S'
}
}
} }});
function dataCallback(){
pubnub.subscribe({
channel: 'channel',
message: function(m){
data = m
console.log(data)
}
});
};
dataCallback();
pubnub.publish({
channel: 'orbit_channel',
message: {
columns: [
['x', new Date().getTime()],
['y', data]
]
}
})
我可以在控制台中看到这些值,但我不明白为什么它不会呈现在图表上。
python脚本的结果:
89453.0
89453.0
89453.0
89453.0
PubNub EON 自定义流图表数据格式
PubNub EON 需要特定格式才能在图表上呈现和显示您的数据。您可以使用需要 function(){}
的内置 transform
参数呈现任何数据格式。提供的转换函数类似于 map
操作的回调,并转换您的数据以匹配所需的 EON 格式。
流式图表数据的 PubNub EON 转换方法
使用 PubNub Public Streams 中的示例流。
您可以使用 transform
方法为 EON 格式化您的消息。
EON 流图表数据格式
{ columns : [
['x', new Date().getTime()],
['Humidity', m.humidity],
['Temperature', m.ambient_temperature],
['Light', m.photosensor]
] }
示例流图数据设置
这是为 EON 流式图表格式化的工作 PubNub 流的示例。使用 transform
方法,您的 JavaScript 应该如下所示:
<script>
var pubnub = PUBNUB({
subscribe_key : 'YOUR_SUBSCRIBE_KEY_HERE' // <-- CHANGE!!!
});
eon.chart({
pubnub : pubnub,
history : false,
channel : 'channel', // <-- YOUR CHANNEL
flow : true,
generate : {
bindto : '#chart',
data : {
x : 'x',
labels : true
},
axis : {
x : {
type : 'timeseries',
tick : {
format : '%Y-%m-%d'
}
}
}
},
transform : function(data) {
return { columns : [
['x', new Date().getTime()],
['Value', data]
] };
}
});
</script>
我正在尝试使用 PUBNUB EON charting library 渲染样条图表。我不明白这里出了什么问题。我可以在控制台中看到数据,但图表未呈现,只有 x 和 y 轴线。我从 python SDK 获取数据并通过 javascript SDK 订阅。控制台没有错误信息。
我的 python 密码是
def counterVolume(data):
for each in data:
y = each.counter_volume
data_clean = json.dumps(y, indent=4, separators=(',', ': '))
print pubnub.publish(channel='channel', message= data_clean)
counterVolume(data)
我的订阅javascript功能是
var data;
var pubnub = PUBNUB.init({
publish_key: 'pub',
subscribe_key: 'subf'
});
var channel = "c3-spline";
eon.chart({
history: true,
channel: 'channel',
flow: true,
generate: {
bindto: '#chart',
data: {
x: 'x',
labels: false
},
axis : {
x : {
type : 'timeseries',
tick: {
format: '%m-%d %H:%M:%S'
}
}
} }});
function dataCallback(){
pubnub.subscribe({
channel: 'channel',
message: function(m){
data = m
console.log(data)
}
});
};
dataCallback();
pubnub.publish({
channel: 'orbit_channel',
message: {
columns: [
['x', new Date().getTime()],
['y', data]
]
}
})
我可以在控制台中看到这些值,但我不明白为什么它不会呈现在图表上。
python脚本的结果:
89453.0
89453.0
89453.0
89453.0
PubNub EON 自定义流图表数据格式
PubNub EON 需要特定格式才能在图表上呈现和显示您的数据。您可以使用需要 function(){}
的内置 transform
参数呈现任何数据格式。提供的转换函数类似于 map
操作的回调,并转换您的数据以匹配所需的 EON 格式。
流式图表数据的 PubNub EON 转换方法
使用 PubNub Public Streams 中的示例流。
您可以使用 transform
方法为 EON 格式化您的消息。
EON 流图表数据格式
{ columns : [
['x', new Date().getTime()],
['Humidity', m.humidity],
['Temperature', m.ambient_temperature],
['Light', m.photosensor]
] }
示例流图数据设置
这是为 EON 流式图表格式化的工作 PubNub 流的示例。使用 transform
方法,您的 JavaScript 应该如下所示:
<script>
var pubnub = PUBNUB({
subscribe_key : 'YOUR_SUBSCRIBE_KEY_HERE' // <-- CHANGE!!!
});
eon.chart({
pubnub : pubnub,
history : false,
channel : 'channel', // <-- YOUR CHANNEL
flow : true,
generate : {
bindto : '#chart',
data : {
x : 'x',
labels : true
},
axis : {
x : {
type : 'timeseries',
tick : {
format : '%Y-%m-%d'
}
}
}
},
transform : function(data) {
return { columns : [
['x', new Date().getTime()],
['Value', data]
] };
}
});
</script>