gpt4 book ai didi

javascript - 小倍数的 D3 工具提示

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:28 25 4
gpt4 key购买 nike

我无法在小倍数 d3 图形(使用 d3-tip)中的每个圆圈上显示工具提示。我收到以下错误消息:“Uncaught TypeError: Cannot set property 'x' of null”。

我认为问题出在我的“提示”变量的定义中。我不确定应该定义哪个键。

有没有人有提示?

提前谢谢你,

佛罗伦萨

<script>

var margin = {top: 8, right: 10, bottom: 2, left: 10},
width = 635 - margin.left - margin.right,
height = 50 - margin.top - margin.bottom;

var parseDate = d3.time.format("%Y.%m.%d").parse;

var x = d3.time.scale()
.range([0, width]);

var y = d3.scale.linear()
.range([height, 0]);

var area = d3.svg.area()
.x(function(d) { return x(d.date); })
.y0(height)
.y1(function(d) { return y(d.value); });

var line = d3.svg.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.value); });



d3.csv("data.csv", type, function(error, data) {
var keys = d3.nest()
.key(function(d) { return d.key; })
.sortValues(function(a,b) { return d3.ascending(a.date, b.date)})
.entries(data);

x.domain([
d3.min(keys, function(key) { return key.values[0].date; }),
d3.max(keys, function(key) { return key.values[key.values.length - 1].date; })
]);

var svg = d3.select("body").selectAll("svg")
.data(keys)
.enter().append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.each(multiple);

svg.append("text")
.attr("x", width - 6)
.attr("y", height - 6)
.style("text-anchor", "end")
.text(function(d) { return d.key; });

});

var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) {
return "<strong>" + d.value + "</strong>"
// + "\t"
// + year.values + "</strong><br/><span style='color:#fff'>" + value.values + " députés élus"
;
})

function multiple(key) {
var svg = d3.select(this);

y.domain([0, d3.max(key.values, function(d) { return d.value; })]);

svg.append("path")
.attr("class", "area")
.attr("d", area(key.values));

svg.append("path")
.attr("class", "line")
.attr("d", line(key.values));


svg.selectAll(".circle")
.data(key.values)
.enter()
.append("svg:circle")
.attr("class", "circle")
.attr("cx", function (d, i) {
return x(d.date);
})
.attr("cy", function (d, i) {
return y(d.value);
})
.attr("r", 5)
.on('mouseover', tip.show)
.on('mouseout', tip.hide)
console.log(key.values)

}

最佳答案

我遇到了同样的问题。我认为这可能是圆圈没有“x”或“y”值的问题。原来我只是失踪了

svg.call(tip);

关于javascript - 小倍数的 D3 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com