以下作品(圆圈将移动到提供的点的新位置)d3target.attr('cx',newCX).attr('cy',newCY)但这些不是:d3target.transition().attr('cx',newCX).attr('cy',newCY)//.duration(1000)//Stilldoesn'tworkwithorwithouttheduration这也不行:(通过提供起始值assuggestedbyAPIdocs)d3target.attr('cx',originalCX).attr('cy',originalCY).transition().attr('cx',newC
我有一张用D3制作的旭日图。每个“花瓣”代表一个数据子集。当用户点击其中一个“花瓣”时,我希望它进行转换,散开以仅显示该子集(见图):我无法让代码正确转换。单击时,所有“花瓣”(除了选定的花瓣)都应消失,其余路径应沿圆圈设置动画(使用attrTween、arcTween和插值?)。将要更改的主要值是angleSize(varangleSize=(2*Math.PI)/theData.length;)。我试过使用this,this,this,和this作为引用没有太大的成功。处理动画的最佳方式是什么?感谢您的宝贵时间!-->参见PlunkerHere.代码如下:varcolors={'R
在学习这两种框架的背景下,我正在尝试不同的方式来集成D3和Angular,并希望得到一些意见:我的客户端应用程序从我的服务器接收一个JSON节点数组和一个边数组。客户端的核心组件是作为D3力导向布局实现的图形可视化:对于节点数组中的每个节点,将一个(SVG)圆元素添加到此可视化中,并为这些圆之间的每条边添加线边缘数组。当然,D3的selection.data()使得添加这些元素并将每个元素绑定(bind)到它所代表的数据变得微不足道,但是图形可视化只是更大应用程序的一部分:我需要在应用程序的不同部分(与D3无关)创建代表这些相同节点和边缘的不同类型的元素,我希望将所有这些元素绑定(bi
这将替代对数刻度,以便它可以处理负数。虽然我一直在尝试使用d3的对数刻度源作为起点,但还没有看到很多自定义刻度的例子。 最佳答案 据我所知,没有办法在D3中制作自定义比例(至少不是您正在寻找的那种感觉)。所有D3尺度都分两步缩放:使用域,在给定反插值函数的情况下对输入进行反插值使用范围,对步骤1的中间结果进行插值以获得输出我相信您的理想答案基本上可以回答这个问题,“如何将D3刻度的去插值函数设置为自定义函数?”,我认为目前这不可能。但是,您可以设置插值功能。MikeBostock的这个示例展示了如何使用D3的内置缓动函数之一设置插值
我正在使用nvd3.js创建一个折线图来显示我随时间计算的评分。我有每个单独的数据点(评级)的更多信息,并且希望图表上的每个数据点链接到一个唯一的页面,其中包含有关该特定数据点的更多信息。例如:我希望能够将鼠标悬停在图表上的第一个数据点(x:1345457533,y:-0.0126262626263)上并单击它以转到特定页面(http://www.example.com/info?id=1),提供有关该评级或数据点的更多信息。每个数据点都有一个唯一的ID和我想链接到的唯一URL。这是我用来生成图表的代码:nv.addGraph(function(){varchart=nv.models
我正在使用d3绘制折线图,一切正常。但是,我必须在图表区域的左侧留出足够的边距以适应我认为最宽的y轴文本标签。我想根据最宽的标签为每个图表调整此空间。最初我以为我可以找到最大的y值,创建一个隐藏的文本对象,计算出它的宽度,并在创建图表时使用该值作为左边距。有点讨厌,但它给我带来了值(value)。但是,如果最大y值是“1598.538”,则最顶部的y轴标签可能是“1500”……即窄得多。所以我想我想找到最顶层标签的实际宽度。但如果不绘制图表和轴、测量宽度并再次真正绘制,我想不出该怎么做。这听起来很讨厌!有没有一种简单的方法可以做到这一点?更新这是我的部分代码,使用了Lars的建议,
我正在通过嵌套.csv文件构建分组条形图。该图表也可以作为折线图查看,因此我想要一个适合折线对象的嵌套结构。我原来的.csv看起来像这样:Month,Actual,Forecast,BudgetJul-14,200000,-,74073.86651Aug-14,198426.57,-,155530.2499Sep-14,290681.62,-,220881.4631Oct-14,362974.9,-,314506.6437Nov-14,397662.09,-,382407.67Dec-14,512434.27,-,442192.1932Jan-15,511470.25,511470.2
我想使用D3制作散点图,并且能够使用某种跨x轴的slider一次只查看一小部分。javascript中是否有一种方法可以有效地缓冲数据并在用户向左或向右滚动时快速访问元素?我的目标类似于这个protovis示例here,但数据量是原来的10倍。当我制作那么多数据点时,此示例会令人窒息。 最佳答案 我已经绘制了一个包含大约10k个点的散点图,我需要在其中以交互方式过滤绘图的各个部分。我分享了一系列对我有用的技巧,希望其中一些技巧也能对您有所帮助:为您的.data()运算符使用一个键函数,因为它在tutorial的末尾完成。.使用键的优
我试图用不同的颜色填充图表下方的区域,具体取决于x值范围,例如,对于x值0到10黄色,从10到20红色等等。有办法吗?我的单一填充颜色的javascript是varm=80;varw=900-3*m;varh=600-3*m;varx=d3.scale.linear().range([0,w]);vary=d3.scale.linear().range([h,0]);x.domain(d3.extent(data,function(d){returnd.time;}));y.domain(d3.extent(data,function(d){returnd.points;}));var
有人知道是否可以使用d3.js在同一事件上调用两个单独的函数吗?我知道你可以在JavaScript中通过用分号将两者分开来做到这一点,但在我的特殊情况下并没有成功做到这一点。我正在使用带有工具提示的力布局图,并且有两个我想使用的单独的工具提示。在鼠标悬停时,会出现一个工具提示,说明节点的名称,然后在单击时,我想要第二个工具提示来显示其描述。不过,在单击时,我希望第一个工具提示消失。这是我正在使用的代码块:.on("click",describe_tip.show).on("mouseover",tip.show).on("mouseout",tip.hide)我想调用tip.hide和