如何仅在区域内绘制网格线

阿尔特姆

我只需要在s in Area Chart, written in D3 (version 4) . Have any solutions此问题的区域内绘制轴网格线

rioV8

轴刻度长度使用负宽度和高度,然后使用 CSS 样式对网格进行描边。

  g.append("g")
      .attr("transform", "translate(0," + height + ")")
      .call(d3.axisBottom(x));

  g.append("g")
      .call(d3.axisLeft(y));

  g.append("g")
      .attr("class", "grid")
      .attr("transform", "translate(0," + height + ")")
      .call(d3.axisBottom(x)
              .tickSize(-height)
              .tickFormat("")
      );
  g.append("g")
      .attr("class", "grid")
      .call(d3.axisLeft(y)
              .tickSize(-width)
              .tickFormat("")
      );

编辑

如果它在区域内,则定义等于该区域的剪切路径并将网格线分组到该剪切路径。

使用https://www.mattlayman.com/blog/2015/d3js-area-chart/ 中的示例

var data = [
    { x: 0, y: 10, },
    { x: 1, y: 15, },
    { x: 2, y: 35, },
    { x: 3, y: 20, },
];

var margin = {top: 20, right: 20, bottom: 30, left: 50},
    width = 575 - margin.left - margin.right,
    height = 350 - margin.top - margin.bottom;

var x = d3.scaleLinear()
    .domain([0, d3.max(data, function(d) { return d.x; })])
    .range([0, width]);

var y = d3.scaleLinear()
    .domain([0, d3.max(data, function(d) { return d.y; })])
    .range([height, 0]);

var xAxis = d3.axisBottom()
    .scale(x);

var yAxis = d3.axisLeft()
    .scale(y);

var area = d3.area()
    .x(function(d) { return x(d.x); })
    .y0(height)
    .y1(function(d) { return y(d.y); });

var svg = d3.select("svg#area")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + margin.top + margin.bottom)
  .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

svg.append("path")
    .datum(data)
    .attr("class", "area")
    .attr("d", area);

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

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

svg.append("clipPath")
   .attr("id", "area-clip")
   .append("path")
   .attr("d", area(data)); 

var grid = svg.append("g")
              .attr("clip-path","url(#area-clip)");
    
grid.append("g")
    .attr("class", "grid")
    .attr("transform", "translate(0," + height + ")")
    .call(xAxis.tickSize(-height).tickFormat(""));
grid.append("g")
    .attr("class", "grid")
    .call(yAxis.tickSize(-width).tickFormat(""));
.area {fill:steelblue;}
.grid line {fill:none; stroke:red; stroke-width:1;}
<script src="https://d3js.org/d3.v5.min.js"></script>
<svg id="area"></svg>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何绘制比例缩放的网格线?

来自分类Dev

JavaFx 2.x:如何绘制较小的网格线

来自分类Dev

如何仅使用pcolor / pcolormesh绘制网格线

来自分类Dev

如何启用/绘制JointJS图的网格线

来自分类Dev

如何在绘图后使用grid()绘制网格线?

来自分类Dev

如何在Matlab中绘制不同间距的网格线

来自分类Dev

如何绘制具有相对距离的水平网格线?

来自分类Dev

在Cartopy地图中绘制网格线

来自分类Dev

在SecondaryAxis上绘制网格线-Matplotlib

来自分类Dev

jQuery在元素上绘制网格线

来自分类Dev

gnuplot:如何创建彩色网格区域,而不仅仅是彩色网格线?

来自分类Dev

如何在 Matlab 中用空 gridsquares 绘制网格(即显示网格线)

来自分类Dev

以可变的相交线绘制对角网格线

来自分类Dev

如何将 yAxis 网格线扩展到 Highcharts 中的完整绘图区域?

来自分类Dev

python2.7:如何绘制图中x轴网格线的值

来自分类Dev

如何使用 chart.js 仅绘制图形和 Xaxis 网格线

来自分类Dev

如何统一显示网格线?

来自分类Dev

如何内嵌显示网格线项目?

来自分类Dev

Seaborn如何增加网格线的数量?

来自分类Dev

如何使图表中的网格线静态

来自分类Dev

如何更改TStringGrid网格线的颜色?

来自分类Dev

MPAndroidChart:如何删除网格线?

来自分类Dev

仅在x轴上没有小网格线

来自分类Dev

Coreplot轴网格线仅在绘图线下

来自分类Dev

d3-在指定位置绘制网格线

来自分类Dev

在pyplot中绘制网格线和数据的顺序

来自分类Dev

在 Mathematica 中绘制多条网格线并给出单独的标签

来自分类Dev

在python中的点之间绘制网格线

来自分类Dev

如何找到X和Y的角度,然后绘制一条以可变角度横切每条网格线的线?

Related 相关文章

热门标签

归档