- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的直方图中设置条形填充,其方式与使用序数刻度的方式大致相同:
x = d3.scaleLinear()
.domain([fist, last])
.rangeRound([bottom, top])
.padding(someFractionBetweenZeroAndOne)
没有。那是行不通的。然后我前往 API documentation在连续尺度上没有 .padding
方法!
好吧,我可以手动计算我的条形宽度,但是真的没有可用于连续缩放的集成填充
解决方案吗?
最佳答案
以线性比例填充没有意义!
但是,有几种方法可以为条形添加一些空间,例如使用组(如 Bostock 在 this example 中所做的那样)并设置组内矩形的位置,使其与邻居有一些空间。
另一种方法是更改矩形的位置和尺寸(如您所说,“手动计算我的条形宽度”)。例如,在此演示中,我将每个条形的宽度更改为每个 bin 宽度的 90%。
var data = [{x:0, y:10},
{x:2, y:40},
{x:4, y:70},
{x:6, y:30},
{x:8, y:20}];
var svg = d3.select("body")
.append("svg")
.attr("width", 300)
.attr("height", 200);
var xScale = d3.scaleLinear()
.domain([0, 10])
.range([0, 300]);
var barWidth = xScale.domain()[1]/data.length;
var yScale = d3.scaleLinear()
.domain([0, 80])
.range([200, 0]);
var bars = svg.selectAll(".bars")
.data(data)
.enter()
.append("rect");
bars.attr("x", function(d){ return xScale(d.x)})
.attr("y", function(d){ return yScale(d.y)})
.attr("width", function(d,i){ return xScale(barWidth) * 0.9})
.attr("height", function(d){ return 200 - yScale(d.y)});
rect {
fill: teal;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
关于javascript - 如何在 d3.js v4 中设置连续比例的填充(例如 scaleLinear)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179381/
我在图表中拖动圆圈时遇到问题。这是现场演示 https://codesandbox.io/s/71loxoq65j . 我的图表 import { event, select, Selection }
我正在使用 d3(7.0.0 版)在浏览器中使用 HTML 和 React.js 绘制一些图形。我正在按照说明进行操作,但我不断收到错误 TypeError: d3.scaleLinear is no
嗨,我正在查看 documentation对于比例,它显示这样的格式 var x = d3.scaleLinear([10,130]).range([0,960]) 我觉得这很奇怪,因为大多数 exa
我正在尝试使用 d3 在我的 Vuejs 组件中呈现一些图形。我正在按照推荐的方式导入 d3 import * as d3 from 'd3'并试图在其上调用 d3 函数。 webpack.base.
我正在尝试在我的直方图中设置条形填充,其方式与使用序数刻度的方式大致相同: x = d3.scaleLinear() .domain([fist, last]) .rangeRound
我是一名优秀的程序员,十分优秀!