d3设置line长度_使用D3制作图表

这是我写的第一个曲线的代码,你自己改一下吧

这是index.html

------------------------------------------------------------------------------------------------------------------

这是style.css

#container{

background: #ddd;

width:500px;

height:250px;

}

path{

fill:none;

stroke:#4682B4;

stroke-width:2;

}

.domain,tick line{

stroke:grey;

stroke-width:1;

}

------------------------------------------------------------------------------------------------------------------

这是index.js

var width = 500,

height = 250,

margin = {left:50,top:30,right:20,bottom:20},

g_width = width-margin.left-margin.right,

g_height = height-margin.top-margin.bottom;

//svg

var svg = d3.select("#container")

.append("svg")

//width.height

.attr("width",width)

.attr("height",height)

var g = d3.select("svg")

.append("g")

.attr("transform","translate("+margin.left+","+margin.top+")")

var data = [1,3,5,7,8,4,3,7]

var scale_x = d3.scale.linear()

.domain([0,data.length-1])//输入范围

.range([0,g_width])//输出范围

var scale_y = d3.scale.linear()

.domain([0,d3.max(data)])

.range([g_height,0])

var line_generator = d3.svg.line()

.x(function(d,i){return scale_x(i);})

.y(function(d){return scale_y(d);})

.interpolate("cardinal")

d3.select("g")

.append("path")

.attr("d",line_generator(data))

var x_axis = d3.svg.axis().scale(scale_x),

y_axis = d3.svg.axis().scale(scale_y).orient("left");

g.append("g")

.call(x_axis)

.attr("transform","translate(0,"+g_height+")")

g.append("g")

.call(y_axis)

.append("text")

.text("Price($)")

.attr("transform","rotate(-90)")

.attr("text-anchor","end")

.attr("dy","1em")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用d3LineString之前,首先需要确保已经引入了d3库。代码示例如下: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>d3 LineString</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <svg width="500" height="500"></svg> <script> const data = [ {x: 10, y: 20}, {x: 50, y: 100}, {x: 100, y: 200}, {x: 200, y: 400} ]; const svg = d3.select("svg"); const line = d3.line() .x(d => d.x) .y(d => d.y); svg.append("path") .attr("d", line(data)) .attr("stroke", "black") .attr("stroke-width", 2) .attr("fill", "none"); </script> </body> </html> ``` 以上代码将创建一个包含四个点的数据集,然后使用d3.line()方法创建一个线性比例尺,将数据映射到SVG坐标系中的位置。最后,将线条路径添加到SVG元素中,并设置线条样式。 ### 回答2: D3是一个强大的JavaScript库,用于创建数据驱动的可视化图表使用D3可以绘制各种不同类型的图表,包括线段和折线图。要使用D3绘制LineString,可以按照以下步骤进行操作: 1. 首先,将D3库链接到你的HTML文件中。可以通过CDN链接或者将D3库文件下载并引入到项目中。 2. 创建一个SVG容器,用于容纳图表元素。在HTML文件中添加一个具有适当宽度和高度的SVG标签。 3. 使用D3的scale和axis函数,定义你的x和y轴的比例尺和刻度。根据你的数据范围和SVG容器的尺寸来选择合适的比例尺。 4. 准备你的数据。LineString需要一个包含一系列坐标点的数组。可以通过硬编码或从外部数据源加载数据。 5. 使用D3line函数来创建一个线段生成器。传入你的x和y比例尺,并设置线段的样式和属性。 6. 使用line函数将你的数据绑定到SVG元素上。可以使用D3的selectAll和data方法来选择要绑定数据的元素。 7. 最后,在SVG容器中绘制线段。使用D3的append和attr方法来创建和设置线段的路径。 在完成上述步骤后,你应该能够通过D3绘制一个LineString图表。你可以根据需要自定义线段的样式和属性,例如颜色、线宽、动画效果等。另外,D3还提供了许多其他功能和方法,可以进一步扩展和定制你的图表。 ### 回答3: d3是一个用于数据可视化的JavaScript库,其中包含了很多有用的函数和方法。画LineString是d3中用来绘制折线图的一个功能。 要使用d3来画LineString,首先需要引入d3库,并创建一个SVG画布,以便在上面进行绘制。 代码示例: ```javascript // 创建一个SVG画布 var svg = d3.select("body") .append("svg") .attr("width", 500) .attr("height", 300); // 定义一个数据集,用来表示一个折线 var dataset = [ { x: 50, y: 50 }, { x: 100, y: 150 }, { x: 200, y: 100 }, { x: 300, y: 200 } ]; // 创建一个折线生成器 var lineGenerator = d3.line() .x(function(d) { return d.x; }) .y(function(d) { return d.y; }); // 在SVG画布上绘制折线 svg.append("path") .attr("d", lineGenerator(dataset)) .attr("stroke", "blue") .attr("stroke-width", 2) .attr("fill", "none"); ``` 上述代码中,首先我们创建了一个SVG画布,并指定其宽度和高度。然后,我们定义了一个包含了四个点坐标的数据集,代表了一条折线的四个顶点。 接下来,我们使用d3.line()函数创建了一个折线生成器,该生成器会根据数据集的坐标信息生成相应的折线路径。 最后,我们通过调用svg.append("path")方法在SVG画布上添加一个路径元素,并使用.lineGenerator(dataset)方法生成折线的路径,再通过.attr()方法设置折线的颜色、宽度和填充样式。 通过上述步骤,我们就可以使用d3LineString实现折线图的绘制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值