1
レンダリングしているカスタム軸を除いて、ほとんどの要素で動作するクリップがあります。例https://jsfiddle.net/7992sgbe/では、行を移動/パンするとそのことがわかります。青い軸はクリップアートを尊重しません。私は、コード内のクリップの順序を変更しようとしましたが、それは何の効果もないようです。クリップパスがd3jsの軸を尊重しない
var clip = svg.append("svg:clipPath")
.attr("id", "clip")
.append("svg:rect")
.attr("x", 0)
.attr("y", 0)
.attr("width", width)
.attr("height", height);
var chartBody = svg.append("g")
.attr("clip-path", "url(#clip)");
軸のコードは理解
var make_x_marker = function (scale=1, transform=[0,0]) {
console.log(transform)
var markers =[];
var markerLabels={};
for (i=0; i<raw['ecg-markers'].length; i++)
{
var value=(1000/244.140625)*raw['ecg-markers'][i];
value=x(raw.meta.startts+value)
markers.push(value)
markerLabels[value]="A"+Math.floor(Math.random()*26);
}
return d3.svg.axis()
.orient("top")
.tickValues(markers)
.tickSize(height-15)
.tickFormat(function(d){return markerLabels[d]})
};
svg.append("g")
.attr("class", "x marker")
.attr("transform", "translate(0," + height + ")")
.call(make_x_marker());
思想と提案以下の通りです。