0
私はD3JSを初めて使いました。私はCodeTutsで折れ線グラフを作成するチュートリアルに従っています。D3jsはx軸とy軸のティックを変更します
私が作ろうとしているチャートには、1時間あたりのユーザー数とデバイスのカテゴリが表示されます。私は、デスクトップの代わりにタブレットやモバイルに切り替えるときを見たいので、私は3つの配列を作った。
配列は次のように構築されている:
var desktop = [
{
'hour': 01,
'users': 20
},
{
'hour': 08,
'users': 800
}
];
私のグラフは次のようになります。
00 , 01, 02, 03, 04 ,05, etc..
: 私のようにx軸の値を設定する方法を知って取得したいと思いyaxisは最も低いデバイスカテゴリ(モバイルとデスクトップのため、yaxisは次のようになります)に焦点を当てるべきです:
00, 10, 20, 30, 40, 50, 60, 70, 80, 100, [maxvalue of users in desktop array]
マイコード:
function makeChart(desktopData,mobileData,tabletData){
var WIDTH = 1200,
HEIGHT = 300,
MARGINS = {
top:20,
right:20,
bottom:20,
left:50
}
var vis = d3.select("#visualisation"),
WIDTH = 1200,
HEIGHT = 300,
MARGINS = {
top: 20,
right: 20,
bottom: 20,
left: 50
},
xScale = d3.scale.linear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([00,23]),
yScale = d3.scale.linear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([00,100]),
xAxis = d3.svg.axis()
.scale(xScale),
yAxis = d3.svg.axis()
.scale(yScale)
.orient("left");
vis.append("svg:g")
.attr("class","axis")
.attr("transform", "translate(0," + (HEIGHT - MARGINS.bottom) + ")")
.call(xAxis);
vis.append("svg:g")
.attr("class","axis")
.attr("transform", "translate(" + (MARGINS.left) + ",0)")
.call(yAxis);
var lineGen = d3.svg.line()
.x(function(d){
return xScale(d.uur);
})
.y(function(d){
return yScale(d.pageviews);
});
vis.append('svg:path')
.attr('d', lineGen(desktopData))
.attr('stroke','deepskyblue')
.attr('stroke-width',2)
.attr('fill','none');
vis.append('svg:path')
.attr('d', lineGen(mobileData))
.attr('stroke','orange')
.attr('stroke-width',2)
.attr('fill','none');
vis.append('svg:path')
.attr('d', lineGen(tabletData))
.attr('stroke','deeppink')
.attr('stroke-width',2)
.attr('fill','none');
}
これは、私は多分、私は私の説明で十分に明確ではなかった、何を望むかを正確ではありません。私はyAxis上で100とmaxvaluedesktopの間の値を表示したくありません。だから私が望むのはyaxis上の数字です:0-100 [空白] maxvalue。 – Elvira