저는 D3JS에 익숙하지 않으며, CodeTuts에 선 그래프를 만드는 방법에 대한 지침을 따라 왔습니다.D3js가 x 축과 y 축의 눈금을 변경합니다.
내가 작성하고자하는 차트에는 시간당 사용자 수와 장치 범주가 표시되어야합니다. 사람들이 데스크톱 대신 태블릿이나 모바일으로 전환 할 때를 알 수 있기를 원하기 때문에 세 개의 배열을 만들었습니다. 다음과 같이 구축되어
배열 :
이var desktop = [
{
'hour': 01,
'users': 20
},
{
'hour': 08,
'users': 800
}
];
내 그래프는 이제 다음과 같습니다
00 , 01, 02, 03, 04 ,05, etc..
: 내가 좀하고 싶습니다이 같은 X- 축 값을 설정하는 방법을 알고 Yaxis는 가장 낮은 기기 카테고리 (모바일 및 데스크톱)에 초점을 맞추어야하므로 yaxis는 다음과 같은 형식이어야합니다.
,794,325,154,는내 코드 : 당신이해야하는 경우
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