d3.jsを使用してラベル付きのx軸を描画しようとしていますが、1950年から2015年までのデータ配列があります。年に0から始まるx軸にプロットする予定ですが、 -axis配列の最小値から始まり、最小値として0を持つ配列を編集すると、x軸のラベルが変化します.iamが間違っている箇所は何ですか?ゼロで軸ラベルを始める方法は?
何私のコードの出力:0年は私が欲しいものではありませんどの含まれている1950 ... 1955 .... 1960
出力: 0 .... 200 .... 400 .. 2015 ........私が出力するつもり何
:0 .... 1950 1955 .... ....
ご意見をもとに$.getJSON(
"https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json",
function(x) {
var rawData = x.data;
var yearData = [];
var gdpData = [];
var width = 1020;
var height = 100;
for (var i = 0; i < rawData.length; i++) {
yearData.push(rawData[0][0]);
gdpData.push(rawData[1][1]);
}
//values which should be labeled on x-axis
var years = [
1950,
1955,
1960,
1965,
1970,
1980,
1985,
1990,
2000,
2005,
2010,
2015
];
var svg = d3
.select("body")
.append("svg")
.attr("width", width)
.attr("height", height)
.append('g');
var x_domain = d3.extent(years, function(d) {
return d;
});
var xscale = d3
.scaleLinear()
.domain(x_domain)
.nice()
.range([20, 600]);
var x_axis = d3
.axisBottom()
.scale(xscale)
.ticks(11);
svg
.append("g")
.call(x_axis);
}
);
あなたはそれを拡張したいですか? 0..2015の範囲があれば、あなたのリストの年はかなり右に窮屈になるはずです。それとも、途中で「少しスキップする」ようにしたいですか? – CupawnTae
軸は0から始まり、次の値は1950,1955、... 2015などとなるはずです ** 0 ... 1950 ... 1955 .... 1960 ......... ... 2015 ** スケーリングせずに配列値から直接ティックにラベルを付ける方法はありますか? –
あなたのコメントを編集したばかりです。だからあなたは*どんなスケールも望んでいないのですか?例えば。 1990年と2000年の間の空間は、2000年と2005年の間の空間と同じでなければならないか? – CupawnTae