- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 D3 条形图,其 x 轴上有一个时间刻度。 x 轴的范围可以变化。
如何指定条形图上条形的正确宽度?我见过人们使用 rangeBands
来表示序数尺度,但我不确定如何使用时间尺度来做到这一点。
这是我的代码:
var x = d3.time.scale().range([0, width]);
var xAxis = d3.svg.axis().scale(x).orient("bottom");
[...]
// After new data has been fetched, update the domain of x...
x.domain(d3.extent(data, function(d) { return d.date; }));
d3.select(".x.axis").call(xAxis);
// ... and draw bars for chart
var bars = svg.selectAll(".air_used")
.data(data, function(d) { return d.date; });
bars.attr("y", function(d) { return y(d.air_used); })
.attr("height", function(d) { return height - y(d.air_used); })
.attr("x", function(d) { return x(d.date); })
.attr("width", 20) // ??
我应该在最后一行放什么来代替 20?
更新:JSFiddle在这里:http://jsfiddle.net/aWJtJ/2/
最佳答案
没有函数获取宽度,但你可以很容易地计算它:
.attr("width", width/data.length);
如果您不希望条形接触,您可能需要从中减去一小部分。您还需要相应地调整 x
位置,例如
.attr("x", function(d) { return x(d.date) - (width/data.length)/2; })
.attr("width", width/data.length);
为了使刻度正确对齐,您还需要调整 x 轴刻度的范围,因为第一个刻度将放置在第一个值处:
var x = d3.time.scale().range([width/data.length/2, width-width/data.length/2]);
完整的jsfiddle here .
关于javascript - D3.js:计算随范围变化的时间尺度中的条形宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835053/
有人知道如何在数组字段中插入以竖线/竖线分隔的数组吗? 逗号可以正常工作,但是当我将其更改为 bar 时,它会产生错误“格式错误的数组文字” 示例(有效): insert into table (ar
我尽力阅读与我的问题相关的问题。最相关的是:question .但是我无法弄清楚如何解决我的问题。我有一个像这样的数据集 structure(list(COMPANY = structure(1
在使用 matplotlib 挣扎了比我想承认的时间更长的时间之后,我试图在我使用过的几乎任何其他绘图库中做一些轻而易举的事情,我决定向 Stackiverse 寻求一些见解。简而言之,我需要的是创建
如何实现带有条形样式的 Activity 指示器。根据以下文档http://developer.android.com/design/building-blocks/progress.html “Ac
我正在尝试使用数组中的数据制作水平条形图 $values = implode(',', array_values($type)); $labels = implode('|', array_keys(
这个问题在这里已经有了答案: Two-tone background split by diagonal line using css (7 个答案) Create a slanted edge
我正在处理一个范围非常大的图表,我发现条形图偏离了轴。我怎样才能阻止这个?这是我在教程中编写的一个示例,因为我的数据是通过读取大量文件获取的。这说明了我遇到的问题。我给出了标准差,意味着一个很大的范围
我在 Swift 2.2 中创建了一个 UIProgressView(条形),现在想改变它的高度。其他一些帖子建议使用 CGAffineTransformScale 来更改高度。但是,出于某种原因,这
我想在条形图上绘制两组具有不同比例的值。例如,对于一周中的每一天,我都有一个比例(比如那天同事迟到的比例)和一个值(他们平均迟到多长时间)。 这两个值可以绘制在两个单独的图表上,但将它们放在同一个图表
我想制作一个具有隐藏/显示功能的组合(线/条)图。我遇到的问题是我不知道如何指定索引更改(对于 javascript 来说是新的)这是我的示例(取消选中前两个复选框之一并重新选中它以查看问题): ht
我安装了 YCM(你完成了我),当我编码时,我发现命令 $ 不工作。它不会跳到行尾,而是跳到最后一行。例如,a.cpp 中的一行: #include| 现在光标在 include 之后,然后我键
我想在条形图顶部显示自定义标签。 下面是我的 stacklabel 代码,这里的问题是我想在 stacklabel 的格式化程序中使用堆栈的类别名称,我该如何访问它。 stackLabels: {
我是一名优秀的程序员,十分优秀!