variation8 2021-10-08 11:54 采纳率: 0%
浏览 229
已结题

echarts+Canvas实现频谱瀑布图完整实现代码

img


类似这种的效果图,
数据传输:WebSocket

频谱图:ECharts

瀑布图:Canvas
实现实时数据加载

  • 写回答

1条回答 默认 最新

  • 神仙别闹 2021-10-08 12:00
    关注
    this.renderInterval = setInterval(() => {
      if (this.data.length <= 100 && this.socketPause === true) {
        this.socket.send('resume')
        this.socketPause = false
      }
      if (this.data.length >= 400 && this.socketPause === false) {
        this.socket.send('pause')
        this.socketPause = true
      }
      if (this.data.length <= 0) return
      const result = this.data[0]
      this.$refs.frequency.addData(result.data)
      this.$refs.waterFall.addData(result.data.map(item => item[1]))
      this.data.shift()
    }, this.refreshInterval)
    

    createImageData

    const imageData = this.waterFallCtx.createImageData(data.length, 1)
    
    for (let i = 0; i < imageData.data.length; i += 4) {
      const cindex = this.squeeze(data[i / 4], 0, 150)
      const color = this.colormap[cindex]
      imageData.data[i + 0] = color[0]
      imageData.data[i + 1] = color[1]
      imageData.data[i + 2] = color[2]
      imageData.data[i + 3] = 255
    }
    return imageData
    

    drawImage

    this.ctx.drawImage(this.waterFallCtx.canvas,0, 0, 1024, 1, 0, 0, width, height)
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月11日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看