- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于这篇冗长的帖子,我深表歉意,但我只是想分享到目前为止我所解决的所有问题和取得的进展。此错误已持续一个多星期。
我有一个折线图,辅以代表三天数据的三个按钮。我将按钮映射到三个 .txt
文件和一个 d3
事件监听器:
var fileMap = {
'Day 1':'2018-05-17.txt',
'Day 2':'2018-05-18.txt',
'Day 3':'2018-05-19.txt'
}
d3.selectAll('.button').on('click', function(d) {
var dayValue = this.innerHTML;
var thisFile = fileMap[dayValue];
createChart(thisFile);
});
所以这个想法是您可以单击按钮,图表将自行更新。在执行 .transition()
调用时,我一直遇到麻烦。我最终使用了这个,它有效:
在调用主 createGraph
函数之前,我有一个变量来计算我们创建图形的次数:
var graphCount = 0;
然后在 createGraph
函数的范围内我有一个计数器:
graphCount +=1;
然后我有了绘制图形(初始状态)或简单转换(如果已经绘制)所需的逻辑:
if (graphCount>1) {
xScale.domain(d3.extent(data, function(d) {return (d.date)}));
yScale.domain(d3.extent(data, function(d) {return (d.y2)}));
d3.selectAll(".line")
.data([data])
.transition() // change the line
.duration(750)
.attr("d", graphLine);
d3.selectAll("g.y.axis").transition() // change the y axis
.duration(750)
.call(yAxis);
} else {
svg.append('path')
.attr('transform', 'translate(' + margins.left + ',' + margins.top + ')')
.datum(data)
.attr('class', 'line')
.attr('d', graphLine);
var yAxisNodes = svg.append('g')
.attr('class', 'y axis')
.attr('transform', 'translate(' + margins.left + ',' + margins.top + ')')
.call(yAxis);
}
也许这不是处理更新功能的最优雅的方式。我承认这看起来有点粗糙,但至少它确实有效。
危险信号:
X 轴:首先,x 轴在我的图表中不可见,但这是设计使然。我有一个显示 x 轴值的工具提示,但为了简单起见,我省略了工具提示。
X 轴是时间维度,.txt
使用 unix 时间,我使用 new Date(((split[0]*300)+rawTime)*1000 进行转换)
。这意味着我所有的 d.dates
都是完整的日期,而不是小时:分钟(正如我最初想要的那样)。这是一个示例切片:
data[0]->Object->date: Thu May 17 2018 09:35:00 ….
我也有一些 timeFormat
变量,但奇怪的是,当我尝试调用 d3.time.format("%H:%M")
时,图表是'绘制。所以在我的代码中它们没有被调用。因为我不需要可见的 x 轴,所以我放弃了。当我不使用 timeFormat
并使用来自 new Date()
的完整日期时,图表工作正常。
问题:每当单击一个按钮时,图表都会成功更新——新数据会从相应的 .txt
中读取,但由于某种原因我已经过了40 个错误阅读:
Error: attribute d: Expected number, "12342542342352452, Nan".
这没有意义,因为图表绘制得很好。如前所述,unix 日期已全部成功解析为 javascript 日期对象。为了安全起见,我将数据传递到控制台进行检查,是的,似乎没有解析错误。所有日期和所有 y 轴值都在那里。
我不确定该怎么做,因为点击几下按钮就会导致日志显示 100 多个错误。我不认为这对浏览器的稳定性有好处,但另一方面,图表似乎工作得很好。
问题:为什么我在日志中收到 40 多个错误?我的数据集大约有 80 个观察值。我注意到它只会在转换期间抛出错误。初始图形创建没有任何错误。
拜托,请让错误消失吧。
我这里有一个非常简单的例子:
https://plnkr.co/edit/Zq9Yd6Hf7mlTlegMXiIG
预感
我还认为它可能是 xAxis
本身。但是我通过了d3.extent(data, function(d) {返回 d.date
进入控制台日志,然后再次检查所有内容。很奇怪。
最佳答案
错误只是由于 txt 文件中的最后一行为空,在数组中为您提供了这样的最后一个对象:
{y2: NaN, date: Wed May 16 2018 23:35:00}
当然,使用 NaN
不会有任何结果。
解决方案:删除那些空行。之后,您的数组具有正确数量的对象(在您链接的运行代码中为 77 对 78)
这是更新的 Plunker:https://plnkr.co/edit/XdOcqsdCG3kXw8cvja9y?p=preview
PS:关于 graphCount
和你的假设......
Maybe it's not the most elegant way to handle update functionality.
是的,这当然不是最好的方法。有一个更好的方法:著名的 enter-update-exit 模式!去掉那个笨拙的计数器和 if...else
语句!
关于javascript - D3 Persistent Path d expected number error 在过渡期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421994/
在 Spring-MVC 应用程序中,我尝试使用 validator 。我将注释 @NotEmpty 和 @Email 放在我的实体之一上,当我尝试验证它时,出现此错误: java.lang.NoSu
网络是我硕士学位的最后一门类(class)。我确实有一个关于如何计算非持久、持久和持久流水线的 http 往返时间的问题。 在花了无数小时阅读有关该问题、从其他大学下载笔记甚至搜索 youtube 视
让我们考虑典型的 订购 和 订单商品 例子。假设 订单商品 是 的一部分订购 聚合,只能通过订单添加。所以,添加一个新的 订单商品 到 订购,我们必须通过 Repository 加载整个 Aggreg
// lookup existing user & set a currently null child entity (ContactInfo) user.setContactInfo(contac
我正在尝试关注 this tutorial .我想我不是从使用可下载项目开始,而是从我之前做过的一个简单的“spring MVC - Maven - eclipse”项目开始。这个项目运行良好。 因此
我正在使用打开 Kubernetes 选项的 docker 应用程序运行 mac OSX Catalina。我使用以下 yaml 和命令创建了一个 PersistentVolume。 apiVersi
假设我有一个类 Employee和一个类Company其中包含 Employee 的 LinkedList对象,我想编写一个添加 Employee 的方法到特定的数据库Company 。我创建了一个新
我实际上正在将我们应用程序的所有组件更新到最新版本。因此,除其他外,我将从 eclipselink-2.5.0 升级到 eclipselink-2.7.3,并从 Tomcat 7 升级到 TomEE。
我试图遵循《用GlassFish 3开始Java EE 6平台》一书第2章中的示例。我正在Windows中使用cmd中的EclipseLink,Derby和Maven。我真的不知道这一点,将不胜感激!
我只是看看ClassGuard (虽然我知道一些 objection )。 但是我得到了 javax.persistence.PersistenceException: [PersistenceUni
我的印象是,如果我们使用持久字段,就不需要 getter 方法,因为实体管理器直接引用实例变量。但是,当我从实体中删除 getter 和 setter 方法以具有持久字段时,未从数据库中检索到相应实例
我正在 Eclipse 中使用 Servlet、JPA、EJB 和 JBoss 进行项目。正如您在我的主题标题中看到的,我的 persistence.xml 文件有错误,但我不知道是哪个:
我已经尝试了一个星期或更长时间来让我的状态在 react native Android 应用程序中持续存在,但在重新水化后状态始终具有初始值。如果我使用 Redux devtools 检查 ASync
什么时候应该坚持,什么时候应该补充水分?命名约定非常困惑,因为作者几乎没有提到它们在 redux-persist 的上下文中的含义。 . 最佳答案 在不真正了解图书馆的情况下: persist = 将
我正在尝试按照老师文档中提供的信息设置一个简单的 jpa 2.0 项目。我已经处理这个问题好几个小时了,但无论我做什么,当我尝试创建 EntityManagerFactory 时,我总是遇到这个异常:
我有一个 Maven 项目,我将其转换为现在可与 Maven 一起使用的 JPA 项目。我的persistence.xml如下: My Persistence Unit
我正在使用 Netbeans 6.8 并构建简单的 Maven Web 应用程序项目。 为持久实体创建实体和主文件 [也创建持久单元] 并使用 EclipsLink。 但是当我运行主文件时出现这个错误
我是 Kubernetes 的新手,我很难理解 Kubernetes 中持久存储背后的整个想法。 这就足够了吗,或者我必须创建持久卷,如果我只部署这两个对象而不创建 PV 会发生什么情况? 存储应该在
我正在尝试使用 JPA 为我目前参与的 Java-EE 项目设置持久性,并且我遇到了许多配置问题。目前,我已经在 persistence.xml 中定义了一个 RESOURCE_LOCAL 持久性单元
Akka 持久性查询通过提供一个通用的基于异步流的查询接口(interface)来补充 Persistence,各种日志插件可以实现该接口(interface)以公开它们的查询功能。 这是来自 akk
我是一名优秀的程序员,十分优秀!