繁体   English   中英

D3图表的Y轴线在某些分辨率下不可见

[英]D3 chart Y axis line is not visible in some resolutions

我有一个类似于此链接的堆积条形图,图形已正确绘制,但问题是y轴线不可见。 但是,如果您在示例图表中增加浏览器页面大小,则可以看到以某种分辨率出现的x,y轴线和水平刻度线。 因此,x,y轴线和水平刻度线的出现和消失取决于页面的分辨率。 如何解决呢?

我正在定义x和y轴,如下所示

var yAxis = d3.svg.axis()
  .scale(y)
  .orient("left")
  .ticks(5)
 .tickSize(-width - 180, 0, 0)
  .tickFormat(d3.format("$"));

var xAxis = d3.svg.axis()
  .scale(x)
  .orient("bottom")
  .tickFormat(d3.time.format("%b"));

svg.append("g")
  .attr("class", "y axis")
  .attr("transform", "translate(0,0)")
  .call(yAxis);

svg.selectAll('.axis line, .axis path')
.style({ 'stroke': '#ddd', 'fill': 'none', 'stroke-width': '1px' });


svg.append("g")
  .attr("class", "x axis")
  .attr("transform", "translate(0," + height + ")")
  .call(xAxis);

设置后问题解决

shape-rendering: geometricPrecision;

代替

shape-rendering: crispEdges;

希望以后对您有所帮助。

实际使用它可能会有所帮助,但是可能会在svg的末端绘制轴。 您可以尝试向svg元素添加样式“ overflow:visible”,以确保有足够的空间来显示轴。 如果那是问题,则需要将轴放置在远离边缘的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM