我是d3.js / javascript和面向Web编程的新手。
我的目标是通过网络套接字用新值更新现有图表。
注意:在此示例中,我确实有一个javascript数组“ var”,我需要添加通过websocket获得的新值,但不是强制性的,数组“ var”也可以为空。我的目标是通过websocket ws接收绘制数据。
我从python websocket服务器(代码1)正确接收了值,但是我仍然不明白如何在d3.js图上绘制新元素。我阅读了一些有关更新模式示例的文档,例如https://bl.ocks.org/mbostock/3808218, 但仍无法使用d3.js enter()/ update()获得有效的解决方案。Code2是一个工作示例,另外还提供了websocket的javascript代码。我正确获取新数据并存储在var“ close”“ when”中。任何人都可以帮助修改html代码以绘制新数据吗?感谢您的帮助,问候。
代码1:工作的python服务器websocket
#!/usr/bin/env python
import asyncio
import datetime
import random
import websockets
import numpy as np
import json
IP = '192.168.10.224'
PORT = 5678
def format_time():
t = datetime.datetime.now().time()
s = t.strftime('%H:%M:%S.%f')
return s[:-3]
async def time(websocket, path):
while True:
#now = datetime.datetime.utcnow().isoformat() + 'Z'
data = {'datetime': str(format_time()),
'ticker': 'ticker',
'value': str(random.randint(100,1000)),
'volume': str(random.randint(1,10))}
await websocket.send(json.dumps(data))
await asyncio.sleep(random.random() * 3)
start_server = websockets.serve(time, …
Run Code Online (Sandbox Code Playgroud)