我试图使用D3.js创建一个具有以下数据结构的线图:
var dataset1 = [ {"video_name": "Apples", "video_views": 100}, {"video_name": "Oranges", "video_views": 35}, {"video_name": "Grapes", "video_views": 20}, {"video_name": "Avocados", "video_views": 85}, {"video_name": "Tomatoes", "video_views": 60} ]
对象的索引号是x值,“video_views”是y值。
问题:它正在追加svg画布,“g”元素很好,但是没有检测到图中每个点的x和y值,因此没有显示任何内容。
// Scale values var Line_xScale = d3.scale.linear() .domain([0, 100]) .range([0, Line_Graph_Width]); var Line_yScale = d3.scale.linear() .domain([0, 100]) .range([0, Line_Graph_Height]); // This is where I suspect the problem is. // // SVG path equal to line var Path_Var = d3.svg.line() .x(function(d, i) { return i * 10; }) .y(function(d) { return Line_yScale(d.video_views); }); // Connect Element with Data group.selectAll('path') .data(dataset1) .enter() .append('path') .attr('d', Path_Var) .attr('fill', 'none') .attr('stroke', '#fff') .attr('stroke-width', 2);
感谢任何帮助。多谢阅读。
一个可能的解决方案:
对象的索引号是x值...:使用d3将x刻度的
:domain
更改为输入索引数组。range()
// Scale values
var Line_xScale = d3.scale.linear()
.domain(d3.range(dataset1.length))
.range([0, Line_Graph_Width]);
...并且“video_views”是Y值。范围
已更改,因此更大的值位于顶部:
var Line_yScale = d3.scale.linear()
.domain([0, 100])
.range([Line_Graph_Height, 0]);
var Path_Var = d3.svg.line()
.x(function(d, i) {
return i * Line_Graph_Width / dataset1.length;
})
.y(function(d) {
return Line_yScale(d.video_views);
});
group.append('path')
.attr('d', Path_Var(dataset1))
.attr('fill', 'none')
.attr('stroke', '#000')
.attr('stroke-width', 2);
#fff的stroke
是白色的,所以即使一切正常,您也看不到任何东西。
参见jsbin中的示例。
使用group.selectall('path').data(dataset1).enter().append('path')
,您不仅可以添加一个path,还可以添加dataset1.length路径元素。
问题内容: 首先看下面的JavaScript对象 我想将值设置为与相同,因此我将对象值放在前面,但它对我不起作用,我也使用过,但仍然失败。我的问题是如何访问对象内对象的属性。 一些用户沉迷于问“您想做什么或发送脚本等”,对于那些人来说,答案很简单:“我想访问对象内的对象属性”,上面提到了脚本。 任何帮助将不胜感激 :) 问题答案: 使用 对象文字 语法时,不能在初始化期间引用对象。创建对象后,需要
我创建了一个对象数组,如下所示: 我正在尝试创建一个新数组,该数组过滤位置,使其仅包含不具有相同城市属性的对象(lat/lng重复项可以)。是否有内置的JS或Jquery函数来实现这一点?
我有一个对象数组。它们中的每一个都具有与其他属性相同的属性,但值不同。我想访问这个数组中一个随机对象的属性,但只访问一次,所以当我随机获取该对象时,它将不再在数组中。 因此,我以三个对象作为数组的开始,并创建一个函数,该函数将通过单击按钮来调用。该函数创建2个变量-一个用于存储从Math.random()与数组长度的乘法中接收的随机数,并由Math.floor()取整。 第二个变量存储从数组中删除
本文向大家介绍详解js访问对象的属性和方法,包括了详解js访问对象的属性和方法的使用技巧和注意事项,需要的朋友参考一下 对象的属性和方法统称为对象的成员。 访问对象的属性 在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。 二者区别:“ . ”表示法一般作为静态对象使用时来存取属性。而“[ ]”表示法在动态存取属性时就非常有用。 访问对象的方法 在JavaScript中
我试图从一个Json文件中提取一个对象列表,但是该文件以一个对象开始,该对象包含我需要的对象数组。我是一个新的改造这里是我的文件:接口 控制器 Json的开头 我的对象Pojo 所以我不需要jsonObject中的任何初始信息,我所需要的只是元素jsonArray中的对象列表,它由两个稍微不同的对象组成,一个有nodes[],一个没有。因此POJO中有2个构造函数? 我如何设置改装来处理这件事?与
本文向大家介绍浅谈JS使用[ ]来访问对象属性,包括了浅谈JS使用[ ]来访问对象属性的使用技巧和注意事项,需要的朋友参考一下 对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法: 使用”.”号记法访问标准的对象属性,使用”[ ]“方括号记法访问由页面定义的对象属性。如下 document.forms["myformname"].elements["myinput"].value