不知道如何将文件中的数据做成一个二维数组,一个一维数组 包含5个对象,每个对象3个属性。还要用到D3 API的知识,如设置DOM元素属性等。
1条回答 默认 最新
- CSDN专家-showbo 2021-09-21 15:24关注
csv就是一个文本文件,用d3 xhr对象读取就行,需要注意发布到web服务器后通过http协议访问,直接拖进浏览器file访问由于安全问题无法使用xhr对象。实际ajax对象)读取本地文件,当然测试用可以配置你的chrome添加参数访问本地文件,chrome配置具体参考:
js获取本地json跨域报错-前端-CSDN问答 CSDN问答为您找到js获取本地json跨域报错相关问题答案,如果想了解更多关于js获取本地json跨域报错 javascript、json、有问必答 技术问题等相关问答,请访问CSDN问答。 https://ask.csdn.net/questions/7486150题主要的代码如下,有帮助点个采纳,谢谢~
<!DOCTYPE html> <script src="https://d3js.org/d3.v7.min.js"></script> <script> function drawRects(dataset) { var width = 800; //画布的宽度 var height = 500; //画布的高度 var svg = d3.select("body") //选择文档中的body元素 .append("svg") //添加一个svg元素 .attr("width", width) //设定宽度 .attr("height", height); //设定高度 var colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd'];//对应的颜色 var rectHeight = 20; //每个矩形所占的像素高度(包括空白) //绘制矩形 svg.selectAll("rect").data(dataset).enter().append("rect") .attr("x", 50)//每个矩形的起始x坐标 .attr("y", (d, i) => i * rectHeight)//每个矩形的起始y坐标 //每个矩形的宽度 .attr("width", d => d.value / 20) //每个矩形的高度 .attr("height", rectHeight - 2) //填充颜色 .attr("fill", (d, i) => colors[i]); //绘制文字 svg.selectAll("text") .data(dataset) .join("text") .attr("x", d => d.value / 20 + 60)//文字x位置 .attr("y", (d, i) => i * rectHeight + 15)//文字y位置 .text(d => d.nation + ':' + d.value)//文字 .attr("fill", (d, i) => colors[i]);//颜色 } async function getData() { let data = await d3.dsv(",", "nation.csv", (data, index, columns) => { var arr = []; for (var i = 1; i < columns.length; i++) {//遍历列表头,去掉第一个项Year var item = {}; item.year = data.Year; item.nation = columns[i]; item.value = data[columns[i]]; arr.push(item); } return arr }); drawRects(data[0]); } getData() </script>
解决 无用评论 打赏 举报
悬赏问题
- ¥15 树莓派与pix飞控通信
- ¥15 自动转发微信群信息到另外一个微信群
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题