Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js中的标签问题_D3.js - Fatal编程技术网

D3.js中的标签问题

D3.js中的标签问题,d3.js,D3.js,我需要在cx中显示标签y,在折线图中显示标签cy。下面的代码不起作用。有人能帮我弄清楚吗。谢谢 代码段: var labels = gnodes.append('text') .text(function(d){ return d.y;}) // display label y in cx and cy .attr("font-family", "sans-serif") .attr("font-size", "11px")

我需要在cx中显示标签y,在折线图中显示标签cy。下面的代码不起作用。有人能帮我弄清楚吗。谢谢

代码段:

     var labels = gnodes.append('text')
        .text(function(d){ return d.y;}) // display label y in cx and cy
        .attr("font-family", "sans-serif")
        .attr("font-size", "11px")
        .attr("fill", "black")
        .attr("cx", function(d) { return x(d.x); })
        .attr("cy", function(d) {return h - y(d.y); }) 
小提琴链接:


//通过使用x和y值的输入数据数组来扩展线形图1
函数lineChart2(){
var data=[{x:0,y:100},{x:10,y:110},{x:20,y:140},
{x:30,y:30},{x:40,y:80},{x:50,y:75},
{x:60,y:120},{x:70,y:130},{x:80,y:10},{x:90,y:8},{x:100,y:3}];
var w=900,h=400,裕度x=32,裕度y=30;
//在lineChart1中,我们使用d3.max查找最大值,0查找最小值。这仅适用于数据数组。lineChart2的数据集包含对象,因此d3辅助函数不起作用。有几种方法。
//方法1:也许最直接的方法是影响数据扫描,并找到x和y的最大值。
/*var xMax=0,yMax=0;
data.forEach(函数(d){
如果(d.x>xMax)
xMax=d.x;
如果(d.y>yMax)
yMax=d.y;
});*/
//console.log(xMax,yMax);
//方法2-这次您将x和y都指定给数据点行。即使在处理对象数组时,此操作也非常简单。
var ax=[];
var ay=[];
data.forEach(函数(d,i){
ax[i]=d.x;
ay[i]=d.y;
})
var xMax=d3.max(ax);
var yMax=d3.最大值(ay);
//console.log(xMax);console.log(yMax);
//天平
y=d3.scale.linear().domain([0,yMax]).range([0+margin_y,h-margin_y]);
x=d3.scale.linear().domain([0,xMax]).range([0+margin_x,w-margin_x]);
var svg=d3.select(“body”).append(“svg:svg”).attr(“width”,w)、attr(“height”,h);
//至于代码的其余部分,与lineChart1相比,没有太多需要修改的地方——只有对x和y边界值的一些修改
//无x非y值
var g=svg.append(“svg:g”)
.attr(“转换”、“平移(0,+h+)”);
//更改x和y值。x和y是对象。请适当调整
var line=d3.svg.line()
.x(函数(d){返回x(d.x);})
.y(函数(d){return-y(d.y);})
//下一步是为路径元素指定一条线
g、 追加(“svg:path”).attr(“d”,行(数据));
//绘制y轴
g、 追加(“svg:line”)
.attr(“x1”,x(0))
.attr(“y1”,-y(0))
.attr(“x2”,x(0))
.attr(“y2”,-y(yMax)-20)
//画x轴
g、 追加(“svg:line”)
.attr(“x1”,x(0))
.attr(“y1”,-y(0))
.attr(“x2”,x(w))
.attr(“y2”,-y(0))
/
g、 全选(“.xLabel”)
.数据(x.ticks(10))
.enter().append(“svg:text”)
.attr(“类”、“xLabel”)
.文本(字符串)
.attr(“x”,函数(d){return x(d)})
.attr(“y”,0)
.attr(“文本锚定”、“中间”);
//画出一个圆珠笔
g、 全选(“.yLabel”)
.数据(y.ticks(5))
.enter().append(“svg:text”)
.attr(“类”、“yLabel”)
.文本(字符串)
.attr(“x”,25)
.attr(“y”,函数(d){return-y(d)})
.attr(“文本锚定”、“结束”);
//将记号添加到轴上。这是通过为每个记号画一条短线来实现的。
//画x记号
g、 选择全部(“.xTicks”)
.数据(x.ticks(10))
.enter().append(“svg:line”)
.attr(“类”、“xTicks”)
.attr(“x1”,函数(d){返回x(d);})
.attr(“y1”,-y(0))
.attr(“x2”,函数(d){返回x(d);})
.attr(“y2”,-y(0)-5)
//画y记号
g、 选择全部(“.yTicks”)
.数据(y.ticks(5))
.enter().append(“svg:line”)
.attr(“类”、“yTicks”)
.attr(“y1”,函数(d){return-y(d);})
.attr(“x1”,x(0)+5)
.attr(“y2”,函数(d){return-y(d);})
.attr(“x2”,x(0))
//绘制x网格
g、 选择全部(“.xGrids”)
.数据(x.ticks(5))
.enter().append(“svg:line”)
.attr(“类”、“xGrids”)
.attr(“x1”,函数(d){返回x(d);})
.attr(“y1”,-y(0))
.attr(“x2”,函数(d){返回x(d);})
.attr(“y2”,-y(yMax)-10)
//绘制y形网格
g、 选择全部(“.yGrids”)
.数据(y.ticks(5))
.enter().append(“svg:line”)
.attr(“类”、“yGrids”)
.attr(“y1”,函数(d){return-1*y(d);})
.attr(“x1”,x(xMax)+20)
.attr(“y2”,函数(d){return-1*y(d);})
.attr(“x2”,x(0));
g、 追加(“svg:文本”)
.attr(“x”,w/2))
.attr(“y”、-h+裕度(y)
.attr(“文本锚定”、“中间”)
.style(“字体大小”,“22px”)
.文本(“具有x和y值的折线图”);
//向轴添加标签
g、 追加(“svg:文本”)
.attr(“x”,25)
.attr(“y”、-h+裕度(y-20)
.attr(“文本锚定”、“结束”)
.style(“字体大小”,“11px”)
.文本(“否”);
g、 追加(“svg:文本”)
.attr(“x”,w-40)
.attr(“y”,-8)
.attr(“文本锚定”、“结束”)
.style(“字体大小”,“11px”)
.文本(“分数”);
//向标记添加文本
var gnodes=svg.selectAll(“g.node”)
.数据(数据)
.enter().append(“g”);
var node=gnodes.append('circle')
.attr('类','节点')
.attr('r',20)
.attr(“cx”,函数(d){返回x(d.x);})
.attr(“cy”,函数(d){返回h-y(d.y);})
.style('fill','red');
var labels=gnodes.append('text')
.text(函数(d){return d.y;})
.attr(“字体系列”、“无衬线”)
.attr(“字体大小”,“11px”)
.attr(“填充”、“黑色”)
.attr(“x”,函数(d){返回x(d.x);})
.attr(“y”,函数(d){返回h-y(d.y);})
//.attr('x',函数(d,i){返回x(i);})
//.attr('y',函数(d){return-1*y(d);});
;        
};
线形图2()
路径{
笔画:钢蓝;
笔画宽度:3;
填充:无;
}
线{
笔画:黑色;
}
.xGrids{
笔画:浅灰色;
}
伊格里兹先生{
笔画:浅灰色;
}
正文{
字体系列:Verdana;
字号:9pt;
}