Javascript 在d3/Canvas JS中操作数据的最佳方式?

Javascript 在d3/Canvas JS中操作数据的最佳方式?,javascript,d3.js,charts,canvasjs,Javascript,D3.js,Charts,Canvasjs,我在可视化仪表板工作,我面临的问题很少 我很困惑在D3J和CanvasJ中选择什么。虽然d3js在良好的视觉效果方面具有丰富的功能,但我更喜欢canvas,因为它很容易创建图表,如果您仍有任何想法让我在这些(d3js和canvasjs)中进行进一步选择,请帮助我 目的: 我想创建一个交互式仪表板,在视觉效果上有很多交叉过滤器,有什么建议吗? API的数据调用方式;我应该完全从服务器获取数据并在java脚本中处理数据,还是应该分别获取每个图表的数据 如果我从数据库中获取整个连接的数据,那么对于仪表

我在可视化仪表板工作,我面临的问题很少

我很困惑在D3J和CanvasJ中选择什么。虽然d3js在良好的视觉效果方面具有丰富的功能,但我更喜欢canvas,因为它很容易创建图表,如果您仍有任何想法让我在这些(d3js和canvasjs)中进行进一步选择,请帮助我

目的: 我想创建一个交互式仪表板,在视觉效果上有很多交叉过滤器,有什么建议吗? API的数据调用方式;我应该完全从服务器获取数据并在java脚本中处理数据,还是应该分别获取每个图表的数据

如果我从数据库中获取整个连接的数据,那么对于仪表板来说,数据量太大(超过2MB),如果我获取特定图表的精确数据,数据量就会更小。举个例子可能有助于更好地理解

假设我有sales视图的数据,其中包含从不同表连接的多个列,并且我的仪表板有4个图表

chart 1: Bar chart for sales by item group 
chart 2: Pie chart for sales by sales person
chart 3: Line Graph showing the sales by hours (week days): trend of the sales at the shop
chart 4: Total Sales, Total Orders KPI
数据收集:我可以通过REST API分别获取每个图表的数据,REST API只包含该图表的数据(或者)我可以从巨大的表连接中获取整体数据(超过2MB,随着销售额的增长而增长)

交互性:当我点击图表1(条形图)的任何项目组时,其余的图表应该根据所选的项目组进行过滤:(编写过滤js代码会有帮助,我对首选方式很好奇)

对于数据获取和交叉过滤,我应该选择哪种方法

回答上述问题会引起更多的怀疑

谢谢

  • CanvasJs更多的是使用HTML5的
    canvas
    元素创建图表,D3使用
    svg
    。这使得canvasJs优于D3,因为canvasJs具有快速响应时间,因此在canvasJs中渲染速度很快。如果您想要快速响应时间,并且不需要对数据进行太多计算/筛选,那么您可以使用CanvasJs
  • D3是更多基于过滤器的过滤图表,可用于您的案例。尽管你要处理销售数据。您将需要过滤器,因此一旦将过滤器应用于一个图表,与该过滤器相关的更改将反映到其他图表。D3使用交叉过滤器,能够过滤掉所有相关信息,并相应地呈现其他图表
  • Canvas和D3都支持数组、Json和CSV格式
  • CanvasJs更多的是使用HTML5的
    canvas
    元素创建图表,D3使用
    svg
    。这使得canvasJs优于D3,因为canvasJs具有快速响应时间,因此在canvasJs中渲染速度很快。如果您想要快速响应时间,并且不需要对数据进行太多计算/筛选,那么您可以使用CanvasJs
  • D3是更多基于过滤器的过滤图表,可用于您的案例。尽管你要处理销售数据。您将需要过滤器,因此一旦将过滤器应用于一个图表,与该过滤器相关的更改将反映到其他图表。D3使用交叉过滤器,能够过滤掉所有相关信息,并相应地呈现其他图表
  • Canvas和D3都支持数组、Json和CSV格式

  • 是的,过滤器是我的主要功能,所以我应该使用D3,谢谢你的回复。欢迎@Shahabaz,然后你可以接受这一回答:)是的,过滤器是我的主要功能,所以我应该使用D3,谢谢你的回复。欢迎@Shahabaz,然后你可以接受这一回答:)