X轴文本标签未在d3中旋转

诺尔·舒沃(Noor A Shuvo)

我正在使用D3堆栈条形图。

小提琴在这里

当我单击“月份”按钮时,该图表显示为带有混乱的x轴标签 在此处输入图片说明

在有大量数据的情况下,我想有条件地旋转x轴标签(在小提琴中,有几个月的数据)

我的第一步是旋转标签。我要附上以下部分。

  svg.append("g")
            .attr("class", "x axis")
            .attr("transform", "translate(0," + height + ")")
            .call(xAxis)
            .selectAll("text")  
            .style("text-anchor", "end")
            .attr("dx", "-.8em")
            .attr("dy", ".15em")
            .attr("transform", "rotate(-65)" );

我不确定为什么它不起作用。这里有什么问题?

罗宾·麦肯齐

您的代码没有错-参见下文:

var margin = {top: 25, right: 25, bottom: 25, left: 25}
var width = 600 - margin.left - margin.right;
var height = 200 - margin.top - margin.bottom;

// x domain
var x = d3.timeDays(new Date(2020, 00, 01), new Date(2025, 11, 01));

// x scale
var xScale = d3.scaleTime()
  .domain(d3.extent(x))
  .range([0, width]); 

// svg
var svg = d3.select("#scale")
  .append("svg")
  .attr("width", width + margin.left + margin.right)
  .attr("height", height + margin.top + margin.bottom)
  .append("g")
  .attr("transform", `translate(${margin.left},${margin.top})`);
   
// messy x-axis
svg.append("g")
  .attr("class", "x-axis")
  .attr("transform", `translate(0,${height - 50})`)
  .call(d3.axisBottom(xScale)
    .ticks(d3.timeMonth)
  );

// x-axis with rotated labels
svg.append("g")
  .attr("class", "x-axis")
  .attr("transform", `translate(0,0)`)
  .call(d3.axisBottom(xScale)
    .ticks(d3.timeMonth)
  )
  .selectAll("text") // YOUR CODE
  .style("text-anchor", "end") // YOUR CODE
  .attr("dx", "-.8em") // YOUR CODE
  .attr("dy", ".15em") // YOUR CODE
  .attr("transform", "rotate(-65)" ); // YOUR CODE 
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/6.3.1/d3.min.js"></script>
<div id="scale"></div>

在小提琴中需要调整的是将旋转应用于draw功能内的轴标签所以从这个:

svg.selectAll("g.x.axis")
  .transition(t).call(xAxis);

对此:

svg.selectAll("g.x.axis")
  .transition(t).call(xAxis)
  .selectAll("text") 
  .style("text-anchor", "end")
  .attr("dx", "-.8em")
  .attr("dy", ".15em")
  .attr("transform", "rotate(-65)" );

根据单击哪个按钮,将重新渲染该轴,并且在svg和两个轴g初始创建中未保留设置

这个答案可能有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

X轴标签未在d3中正确显示

来自分类Dev

d3-旋转x轴标签

来自分类Dev

d3 旋转文本标签

来自分类Dev

如何更改 D3 中 x 轴的标签

来自分类Dev

D3分组条形图:如何旋转x轴刻度线的文本?

来自分类Dev

约束d3中的轴标签

来自分类Dev

约束d3中的轴标签

来自分类Dev

绕D3图形中的轴旋转rect

来自分类Dev

轴未在D3图中显示

来自分类Dev

旋转ios图表中的x轴标签

来自分类Dev

X轴文本标签未与D3.js中的条对齐

来自分类Dev

在matplotlib的x轴上使用3个图对齐/旋转文本标签

来自分类Dev

在“ D3可观察”中更改轴/刻度上标签的字体大小和颜色(不附加文本)

来自分类Dev

更新D3轴标签

来自分类Dev

3D Matplotlib中的旋转轴标签文本

来自分类Dev

d3瀑布图沿x轴值旋转180至-90度

来自分类Dev

如何在D3中更改x轴?

来自分类Dev

D3.js条形图:使x轴标签与条形对齐,并稍微旋转它们

来自分类Dev

d3.js条形图中的旋转x轴标签被切掉

来自分类Dev

旋转ggplot中的x标签文本

来自分类Dev

在 Excel 中隐藏 X 轴的文本标签

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

淡出文本标签以及d3中的节点

来自分类Dev

每周D3的X轴

来自分类Dev

D3在X轴上缩放

来自分类Dev

D3 x 轴数据重叠

来自分类Dev

D3 - 如何在两个刻度之间放置 x 轴值和标签

来自分类Dev

D3 - 定位第二个 x 轴标签