javascript - d3.js:SVG 条出现在 svg 区域之外
问题描述
我是 d3.js 的新手,我正在构建一个简单的条形图。下面显示的代码在浏览器窗口的最底部显示栏,而不是在 html 代码的 svg 区域内。
这是html代码:
<div class="C2_01">First paragraph.</div><br>
<div class="C2_02">Second paragraph.</div><br>
<svg></svg>
<script src="JS\D3_BarChart.js"></script>
<div class="C2_04">Third paragraph.</div>
这是 d3 javascript 代码:
var dataArray = [23, 13, 21, 14, 37, 15, 18, 34, 30];
var svg = d3.select("body").append("svg")
.attr("height","20%")
.attr("width","20%");
svg.selectAll("rect")
.data(dataArray)
.enter().append("rect")
.attr("height","250")
.attr("width","30")
.attr("x", function(d, i) {return (i * 60) + 25})
.attr("y","50")
.attr("fill","white");
我唯一的问题是,为什么条形图显示在 svg 区域之外,远离页面底部?
谢谢你的帮助。
解决方案
我相信您需要选择现有的 svg 元素而不是附加一个新元素。
var svg = d3.select("svg") // Not append
.attr("height","20%")
.attr("width","20%");
查看白色背景上所有条的完整代码。 http://jsfiddle.net/jg83ed91/5/
var dataArray = [23, 13, 21, 14, 37, 15, 18, 34, 30];
d3.select("svg")
.attr("height", "20%")
.attr("width", "100%") // Full width to show all bars
.selectAll("rect")
.data(dataArray)
.enter().append("rect")
.attr("height", "250")
.attr("width", "30")
.attr("x", function(d, i) {
return (i * 60) + 25
})
.attr("y", "50")
.attr("fill", "black"); // On white background
推荐阅读
- if-statement - JMeter IF条件检查
- jquery - Select2 - 使用 selectionAdapter 和 dropdownAdapter 时更改选项的字体大小不起作用
- javascript - chrome是否在内部存储点击焦点?
- python - 使用 VBA 与 Python 进行 Web 抓取
- css - 无法使用 CSS 并在反应 Bootstrap 上证明内容合理
- spring - 基于 Spring 注解的自动装配内部工作
- javascript - ReactJS 中的嵌套路由器 - 刷新时显示空白页
- python - 如何计算pyspark数据帧(2.1.0)中键的出现次数
- laravel - Laravel 查询生成器没有得到结果
- python - 为什么 mysql python flask 网站不能在 heroku 上运行?