- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我构建了一个具有多个维度和组的交叉过滤器,以使用 dc.js 直观地显示数据。可视化的数据是自行车出行数据,每次出行都会加载进去,目前有超过75万条数据。我正在使用的 JSON 文件有 70 MB,并且只会随着我在未来几个月收到更多数据而增长。
所以我的问题是,如何使数据更精简以便更好地扩展?现在加载我的互联网连接大约需要 15 秒,但我担心一旦我有太多数据,它会花费太长时间。此外,我尝试(未成功)在数据加载时显示进度条/微调器,但我没有成功。
我需要的数据列是 start_date, start_time, usertype, gender, tripduration, meters, age
.我已将我的 JSON 中的这些字段缩短为 start_date, start_time, u, g, dur, m, age
所以文件较小。在交叉过滤器上,顶部有一个折线图,显示每天的总行程数。下面是星期几(根据数据计算)、月份(也计算)的行图,以及用户类型、性别和年龄的饼图。在其下方有两个条形图,分别表示开始时间(四舍五入到小时)和行程持续时间(四舍五入到分钟)。
该项目在 GitHub 上:https://github.com/shaunjacobsen/divvy_explorer (数据集在 data2.json 中)。我试图创建一个 jsfiddle 但它不起作用(可能是由于数据,甚至只收集 1,000 行并将其加载到带有 <pre>
标记的 HTML 中):http://jsfiddle.net/QLCS2/
理想情况下,只有顶部图表的数据会首先加载:这会很快加载,因为它只是按天计算的数据。然而,一旦进入其他图表,它就需要越来越多的数据来深入了解更精细的细节。关于如何让它发挥作用的任何想法?
最佳答案
我建议将 JSON 中的所有字段名称缩短为 1 个字符(包括“开始日期”和“开始时间”)。这应该会有所帮助。另外,请确保在您的服务器上打开了压缩。这样,发送到浏览器的数据将在传输过程中自动压缩,如果尚未打开,这应该会大大加快速度。
为了获得更好的响应能力,我还建议首先设置您的 Crossfilter(空)、所有维度和组以及所有 dc.js 图表,然后使用 Crossfilter.add() 将更多数据添加到您的 Crossfilter 中 block 。最简单的方法是将您的数据分成一口大小的 block (每个 block 几 MB)并连续加载它们。所以如果你使用的是d3.json,那么在上一次文件加载的回调中开始下一次文件加载。这会导致一堆嵌套的回调,这有点讨厌,但应该允许用户界面在数据加载时做出响应。
最后,有了这么多数据,我相信您会开始在浏览器中遇到性能问题,而不仅仅是在加载数据时。我怀疑您已经看到了这一点,并且您看到的 15 秒停顿至少部分出现在浏览器中。您可以通过在浏览器的开发人员工具中进行分析来检查。为了解决这个问题,您需要分析和识别性能瓶颈,然后尝试优化这些瓶颈。另外 - 如果您的听众中有较慢的计算机,请务必在较慢的计算机上进行测试。
关于javascript - 将大型数据集加载到 crossfilter/dc.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22302146/
我是 dc.js 的新手,我对 dc 的灵 active 有一些疑问。 首先,我一直在寻找答案,但还没有找到任何答案。 1) 我正在使用 dc.sunburst 图表。我想知道是否有可能创建 Zoom
谁能解释一下 ldap 字符串部分的构成。 我有一个是: string strSQL = "SELECT mail FROM 'LDAP://DC=amrs,DC=win,DC=ml,dc=COM'
他们已经就如何将 dc.js 简单地用作图形库(例如绘制饼图、条形图...)而不需要交叉过滤器进行了各种讨论,例如,如果您只想在数据已经是一个(标签,值)。 我没有找到任何关于如何做到这一点的例子。这
当我点击数据表中的一行时,我需要过滤其他图表。 我做了 my_table.on('pretransition', function (table) { table.selectAll('td
我想显示小切片( chart.minAngleForLabel(0.05) )的标签,避免文本重叠。 我添加了一个将标签移向外边缘的renderlet: .on('renderlet', func
如何在新列的 dc.js 数据表中添加带有事件监听器的按钮。 如果可能的话,我基本上想添加自定义 html。 最佳答案 添加按钮只是返回列的 html 的问题 dc.dataTable (dom) .
这个问题在这里已经有了答案: Initial Range selection in DC.js chart (1 个回答) 关闭 7 年前。 我创建了 this可视化,并希望在解释文本中使用预定义的
我用 dc.js 制作了一个热图,我想知道 dc.js 中是否有热图的键或图例函数。我在互联网上搜索过,但似乎找不到内置的方法,那么有没有其他人解决过这个问题? 最佳答案 我遇到了同样的任务,我所做的
我有一个具有以下模型的数据源: [ { days : 3, value : 500 }, { days : 30,
如果过滤后 dc.js 中的行图值为零,我们如何隐藏。我们有这样的代码: var kurum=data.dimension(function(d){return ""+ d.KURUM;});
自 1.4.0-alpha.06 版起,Crossfilter 支持数组维度 https://github.com/crossfilter/crossfilter/wiki/API-Reference
我希望在 dc.js 的多维数据集中绘制与连续变量关联的几个直方图。虽然使用 dc.barChart 组件很容易实现这一点,但我希望对这些直方图进行面积归一化。在我的例子中,bin 宽度是统一的,所以
我目前正在尝试弄清楚如何使用 DJ.js 和 D3.js 计算要显示的唯一记录数 数据集如下所示: id,name,artists,genre,danceability,energy,key,loud
在此图表上:http://junklogic.com/dcjs/barpie/index-controls.html 我的示例 JSON 文件中有与严重性评级相对应的图例,该文件代表我将在生产中使用的
我有以下数据。 我可以使用 dc.js 创建一个吗? 有人可以帮助我使用 dc js 创建直方图吗? 搜索了整个论坛但除了这个post 找不到有用的东西. 日期: numbers11012035242
以下是一组数据: var data = [{ machine1: [ {x:"20/12/2014", y:2}, {x:"21/12/2014", y:10} ]},{ machine2:
我使用 dc.js 和 crossfilter 创建了一个折线图。当前图表如下所示: 必需:我希望左上角的事件非事件图例位于中心图表的下方(底部),并且 x 轴刻度标签应该从一月到十二月开始。我在下面
我仍在尝试使用 dc 和 crossfilter 将图表链接在一起,这里我将表格和饼图链接在一起。链接在图表和表格之间起作用,因此当我单击饼图时,表格会相应更新。 然而,当我点击超链接时,这一行似乎没
我对允许打印填充填充对象的修复有疑问... 所以,完整的故事是我们使用了 Windows GDI FloodFill 函数,我们注意到它在打印机上不起作用,所以我在 inet 上找到的是创建一个内存
我是 MFC 编程的新手。这些天我正在使用 Jeff Prosise 的书来学习 MFC 编程。我遇到过:CClientDC dc (this); 我从 CClientDC 类的定义中找到了一个构造函
我是一名优秀的程序员,十分优秀!