D3.js 自定义刻度值在d3条形图上消失

D3.js 自定义刻度值在d3条形图上消失,d3.js,D3.js,我的项目是测量离散间隔的信号功率水平,我试图用条形图来表示。由于频率是离散的,所以我尝试使用数组设置刻度值,当我提供[1,2]时,它们工作正常,但当我提供更大的值时,它们会表现得很奇怪 下面是代码,我现在只是尝试使用本地数据,因为我是D3新手 <body> <script type="text/javascript"> //Width and height var w = 1000;

我的项目是测量离散间隔的信号功率水平,我试图用条形图来表示。由于频率是离散的,所以我尝试使用数组设置刻度值,当我提供[1,2]时,它们工作正常,但当我提供更大的值时,它们会表现得很奇怪

下面是代码,我现在只是尝试使用本地数据,因为我是D3新手

<body>
        <script type="text/javascript">
            //Width and height
            var w = 1000;
            var h = 500;
            var barPadding = 1;  // padding space to distinguish bars
            var axisSpace = 25;

            var dataset =[200,40];
            var tix = [55,57]

            // SCALES
            var xscale = d3.scale.linear()
                                .domain([0, dataset.length])
                                .range([0,w]);
            var yscale = d3.scale.linear()
                                .domain([0,d3.max(dataset,function(d){return d;})])
                                .range([0,h]);

            //AXES
            var xAxis = d3.svg.axis()
                            .scale(xscale)// define simple axis function with scales
                            .orient("top")  // define the orientation of labels
                            .tickValues(tix);
            var yAxis = d3.svg.axis(yscale);




            //Create SVG element
            var svg = d3.select("body")
                        .append("svg")
                        .attr("width", w)
                        .attr("height", h)


            svg.selectAll("rect")
               .data(dataset)
               .enter()
               .append("rect")
               .attr("x", function(d, i) {
                    return i * (w / dataset.length);
               })
               .attr("y", function(d) {
                    return h - yscale(d);
               })
               .attr("width", w / dataset.length - barPadding)
               .attr("height", function(d) {
                    return (yscale(d) - axisSpace);
               })
               .attr("fill", function(d) {
                    return "rgb(0, 0, " + (d * 550) + ")";
               });


               // call axis function on svg element
               svg.append("g")  // append new group to save all axes
                    .attr("class", "axis")  // assign it a class so we can target it using CSS
                    .attr("transform", "translate(0, 477)") // 477 = h - axisSpace + 2
                    .call(xAxis); // call axis function

        </script>
    </body>

//宽度和高度
var w=1000;
var h=500;
var barPadding=1;//填充空格以区分条
向量空间=25;
var数据集=[200,40];
var tix=[55,57]
//天平
var xscale=d3.scale.linear()
.domain([0,dataset.length])
.范围([0,w]);
var yscale=d3.scale.linear()
.domain([0,d3.max(数据集,函数(d){返回d;})])
.范围([0,h]);
//斧头
var xAxis=d3.svg.axis()
.scale(xscale)//使用刻度定义简单轴函数
.orient(“top”)//定义标签的方向
.温度值(tix);
var yAxis=d3.svg.axis(yscale);
//创建SVG元素
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,w)
.attr(“高度”,h)
svg.selectAll(“rect”)
.数据(数据集)
.输入()
.append(“rect”)
.attr(“x”,函数(d,i){
返回i*(带数据集长度);
})
.attr(“y”,函数(d){
返回h-yscale(d);
})
.attr(“宽度”,w/dataset.length-条形填充)
.attr(“高度”,功能(d){
返回(yscale(d)-轴空间);
})
.attr(“填充”,功能(d){
返回“rgb(0,0,+(d*550)+”);
});
//在svg元素上调用axis函数
svg.append(“g”)//追加新组以保存所有轴
.attr(“class”、“axis”)//为其分配一个类,以便我们可以使用CSS将其作为目标
.attr(“transform”,“translate(0477)”)//477=h-axisSpace+2
.呼叫(xAxis);//调用轴函数
此行:

.domain([0, dataset.length])
将域从0设置为2。你的蜱虫:

var tix = [55,57]
不在此域内,因此您不会收到任何滴答声

也许你想要:

.domain(tix)
例如