javascript - D3 X 轴文本和刻度线不可见

标签 javascript d3.js

我在使用 D3 图表时遇到问题,其中 x 轴文本和刻度线不可见。我可以看到这两个元素都正确放置在图表上的 Web 检查器中,并且刻度线上有笔划和笔划宽度,但我认为我缺少另一部分。这是我的代码的相关部分:

var parentContainer = window.getComputedStyle(document.getElementById('#svgContainer'));
var margins = {top: 40, right: 20. bottom: 20, left: 20};
var svgWidth = parentContainer.width;
var svgHeight = parentContainer.height;
var height = svgHeight - margin.top - margin.bottom;
var width = svgWidth - margin.left - margin.right;

var svg = d3.select('svgContainer')
.append('svg')
.attr('width', svgWidth)
.attr('height', svgHeight)
.attr('transform, 'translate(' + margin.left + ',' + margin.top + ')');

 var xAxis = d3.svg.axis()
.scale(x)
.orient('top')
.innerTickSize(-height);

 svg.append('g')
.attr('class', 'xAxis')
.call(xAxis);

这是我的 CSS/LESS:

#svgContainer {
width: 100%;
height: 500px;
.tick {
  line {
    fill: none;
    stroke: black;
  }
  text {
    font-size: 14px;
  }
}

我没有包含图表代码的其余部分,因为它似乎工作正常 - 轴线和文本位于正确的位置和正确的间隔,只是不可见。不知道我错过了什么。谢谢!

最佳答案

使用包含减去的边距值的高度/宽度。

var height = svgHeight - margin.top - margin.bottom;
var width = svgWidth - margin.left - margin.right;

var svg = d3.select('svgContainer')
.append('svg')
.attr('width', width)
.attr('height', height)
.attr('transform, 'translate(' + margin.left + ',' + margin.top + ')');

关于javascript - D3 X 轴文本和刻度线不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41710699/

相关文章:

javascript - 如何通过使用 Javascript 单击按钮使图像 move ?

javascript - 为什么 D3 拖动不起作用?

d3.js - 将 d3js 树折叠到指定深度

javascript - 为 d3.js V4 中的每个栏应用独特的颜色

javascript - ReactTable - 切换行背景颜色 onClick/onExpandRow

javascript - Angular新路由器错误无法读取未定义的属性 'path'

javascript - 使用下拉菜单链接的 Bootstrap 选项卡导航

javascript - 如何使用 Id 禁用输入框,同时使用克隆方法在表中添加新行?

javascript - cytoscape.js 中具有多个父节点的复合节点

javascript - 圆形中的 d3 图像无法正确渲染