D3.js D3。斧头。为顺序刻度绘制轴的正确方法是什么
我有一张显示直方图的图表 垂直绘制,水平x轴以“箱子中的项目”为单位。我的问题是x轴。我不清楚如何配置D3.js D3。斧头。为顺序刻度绘制轴的正确方法是什么,d3.js,D3.js,我有一张显示直方图的图表 垂直绘制,水平x轴以“箱子中的项目”为单位。我的问题是x轴。我不清楚如何配置d3.svg.axis()来绘制图表底部带有单位的轴。事情有点复杂,因为我围绕y轴翻转箱子的方向,以指示它们包含负值(向左翻转)或正值(向右翻转) 更新 这是相关代码 承载我的直方图的对象。我已经删除了不相关的代码。 self.datasource是{id:name,score:score\u value}形式的对象数组 scarpa.ConnectivityScoreHistogram =
d3.svg.axis()
来绘制图表底部带有单位的轴。事情有点复杂,因为我围绕y轴翻转箱子的方向,以指示它们包含负值(向左翻转)或正值(向右翻转)
更新
这是相关代码
承载我的直方图的对象。我已经删除了不相关的代码。
self.datasource是{id:name,score:score\u value}形式的对象数组
scarpa.ConnectivityScoreHistogram = function (dataset) {
var self = this;
this.histogramDataSource = d3.layout.histogram()
.value (function(d) { return d.score; })
.bins(binThresholds)
(self.datasource);
this.extent = d3.extent(this.histogramDataSource, histogramXDomainMapper);
// Set domain for x and y scales. Range is set in renderer
this.xScale = d3.scale.linear().domain(this.extent);
this.yScale = d3.scale.ordinal().domain(this.histogramDataSource.map(histogramYDomainMapper));
};
function histogramXDomainMapper(d) {
return doPertCount(d);
}
function doPertCount(d) {
return (d.x < 0) ? -(d.y) : d.y;
}
function histogramYDomainMapper(d) {
return d.x.toString();
}
轴不会出现在屏幕上。但是SVG元素被添加到DOM层次结构中:
请添加您的代码。没有它很难帮助你。这是一个序数轴的例子。您的问题是如何在技术上做到这一点,还是在您的案例中绘制它的最佳方法?请添加您的代码。没有它很难帮助你。这是一个序数轴的例子。您的问题是如何在技术上做到这一点,还是在您的案例中,最好的方法是什么?
histogram.yScale.rangeBands([bbox.height, 0], .125);
// scale range
histogram.xScale.range([0, histogram.scaleFactor * bbox.width]);
// axis
histogram.xAxis = d3.svg.axis();
histogram.xAxis.scale(histogram.xScale);
histogram.xAxis.orient("bottom");
histogram.xAxis.ticks(10);
// SVG element hierarchy buildout
// histogram group
histogramGroup = svg
.append("g")
.attr("id", label)
.attr("transform", "translate(" + bbox.x + "," + bbox.y + ")");
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0, " + bbox.height + ")")
.call(histogram.xAxis);