- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 D3plus 来换行文本 - 我开始了解如何在 SVG 换行中制作文本。但是,我不断收到与 d3Plus 或我的代码有关的错误 - D3 的文档非常少,所以我希望就我出错的地方获得一些帮助。干杯。
JS
<script>
var dataPoints = [
["Arsenal", -0.0032967741593940836, 0.30399753945657115],
["Chelsea", 0.2752159801936051, -0.0389675484210763],
["Liverpool", -0.005096951348655329, 0.026678627680541075],
["Manchester City", -0.004715381791104284, -0.12338379196523988],
["Manchester United", 0.06877966010653305, -0.0850615090351779],
["Tottenham", -0.3379518099485709, -0.09933664174939877]
];
var teamData = [
["Arsenal", "@arsenal", "world", "cup", "arsenal", "💭", "@sahil_adhikaari", "win", "@hectorbellerin", "man", "season"],
["Chelsea", "f", "g", "h", "i", "j"],
["Liverpool", "l", "m", "m", "o", "p"],
["Manchester City", "q", "r", "s", "t", "u"],
["Manchester United", "v", "w", "x", "y", "z"],
["Tottenham", "1", "2", "3 ", "4", "5"]
];
const colours = d3.scaleOrdinal()
.domain(dataPoints)
.range(["#F8B195", "#F67280", "#C06C84", "#6C5B7B", "#355C7D", "#2A363B"]);
var canvasW = 700;
var canvasH = 600;
var w = 365;
var h = 365;
var xPadding = 30;
var yPadding = 20;
var padding = 10;
var border = 0.5;
var bordercolor = 'black';
var xScale = d3.scaleLinear()
.range([xPadding, w - padding])
.domain([-1, 1]);
var yScale = d3.scaleLinear()
.range([h - yPadding, padding])
.domain([-1, 1]);
var svg = d3.select('body')
.append("svg")
.attr('width', canvasW)
.attr('height', canvasH);
var circles = svg.selectAll("circle")
.data(dataPoints)
.enter()
.append("circle")
.attr("r", 7)
.attr("cx", function(d) { return xScale(d[1]); })
.attr("cy", function(d) { return yScale(d[2]); })
.on('click', function(d, i) {
console.log("click", d[0]);
})
.attr("fill", function(d) {
var result = null;
if (dataPoints.indexOf(d) >= 0) {
result = colours(d);
} else {
result = "white";
}
return result;
});
var legend = svg.selectAll(".legend")
.data(colours.domain())
.enter()
.append("g")
.attr("class", "legend")
.attr("transform", function(d, i) { return "translate(0," + i * 29 + ")"; });
legend.append("rect")
.attr("x", canvasW - 184)
.attr("y", 11)
.attr("width", 18)
.attr("height", 18)
.style("fill", colours);
legend.append("text")
.attr("x", canvasW - 194)
.attr("y", 20)
.attr("dy", ".35em")
.style("text-anchor", "end")
.text(function(d) { return d[0];})
var borderPath = svg.append("rect")
.attr("x", 5)
.attr("y", 5)
.attr("height", h)
.attr("width", w)
.style("stroke", bordercolor)
.style("fill", "none")
.style("stroke-width", border);
var textBox = svg.append("g")
.attr("transform", "translate(5,385)");
textBox.append("rect")
.attr("id", "target")
.attr("height", 150)
.attr("width", 529)
.style("stroke", bordercolor)
.style("fill", "none")
.style("stroke-width", border);
filter();
function filter(d) {
d3.select("body").selectAll(null);
circles.on("click", filter);
var filterss = teamData.filter(e => e[0] === d[0])[0];
var team = filterss.slice(0, 1);
filterss = filterss.slice(1, filterss.length);
team = team + ": "
filterss = filterss.join(", ")
console.log(team + filterss);
new d3plus.TextBox()
.select(textBox.node())
.data(team + filterss)
.text( function(d){ return d; })
.width(textBox.select('rect').attr("width"))
.fontSize(20)
.render();
}
最佳答案
如果您查看导入 d3plus
时发生错误的行,您会看到这一点;
d3.scale.ordinal()
那是 d3 版本 3 语法,而看起来您使用的是 d3 版本 4。
看起来您想要版本 4 的 this library(它特定于文本换行)。
下面是一个将新 API 与您的代码片段合并的示例:
<!DOCTYPE html>
<html>
<head>
<script data-require="d3@4.0.0" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://d3plus.org/js/d3plus-text.v0.9.full.min.js"></script>
</head>
<body>
<script>
var dataPoints = [
["Arsenal", -0.0032967741593940836, 0.30399753945657115],
["Chelsea", 0.2752159801936051, -0.0389675484210763],
["Liverpool", -0.005096951348655329, 0.026678627680541075],
["Manchester City", -0.004715381791104284, -0.12338379196523988],
["Manchester United", 0.06877966010653305, -0.0850615090351779],
["Tottenham", -0.3379518099485709, -0.09933664174939877]
];
teamData = [
["Arsenal", "@arsenal", "world", "cup", "arsenal", "💭", "@sahil_adhikaari", "win", "@hectorbellerin", "man", "season"],
["Chelsea", "f", "g", "h", "i", "j"],
["Liverpool", "l", "m", "m", "o", "p"],
["Manchester City", "q", "r", "s", "t", "u"],
["Manchester United", "v", "w", "x", "y", "z"],
["Tottenham", "1", "2", "3 ", "4", "5"]
];
const colours = d3.scaleOrdinal()
.domain(dataPoints)
.range(["#F8B195", "#F67280", "#C06C84", "#6C5B7B", "#355C7D", "#2A363B"]);
var canvasW = 700;
var canvasH = 600;
var w = 365;
var h = 365;
var xPadding = 30;
var yPadding = 20;
var padding = 10;
var border = 0.5;
var bordercolor = 'black';
var xScale = d3.scaleLinear()
.range([xPadding, w - padding])
.domain([-1, 1]);
var yScale = d3.scaleLinear()
.range([h - yPadding, padding])
.domain([-1, 1]);
var svg = d3.select('body')
.append("svg")
.attr('width', canvasW)
.attr('height', canvasH);
var circles = svg.selectAll("circle")
.data(dataPoints)
.enter()
.append("circle")
.attr("r", 7)
.attr("cx", function(d) {
return xScale(d[1]);
})
.attr("cy", function(d) {
return yScale(d[2]);
})
.on('click', function(d, i) {
console.log("click", d[0]);
})
.attr("fill", function(d) {
var result = null;
if (dataPoints.indexOf(d) >= 0) {
result = colours(d);
} else {
result = "white";
}
return result;
});
var legend = svg.selectAll(".legend")
.data(colours.domain())
.enter()
.append("g")
.attr("class", "legend")
.attr("transform", function(d, i) {
return "translate(0," + i * 29 + ")";
});
legend.append("rect")
.attr("x", canvasW - 184)
.attr("y", 11)
.attr("width", 18)
.attr("height", 18)
.style("fill", colours);
legend.append("text")
.attr("x", canvasW - 194)
.attr("y", 20)
.attr("dy", ".35em")
.style("text-anchor", "end")
.text(function(d) {
return d[0];
})
var borderPath = svg.append("rect")
.attr("x", 5)
.attr("y", 5)
.attr("height", h)
.attr("width", w)
.style("stroke", bordercolor)
.style("fill", "none")
.style("stroke-width", border);
var textBox = svg.append("g")
.attr("transform", "translate(5,385)");
textBox.append("rect")
.attr("id", "target")
.attr("height", 150)
.attr("width", 529)
.style("stroke", bordercolor)
.style("fill", "none")
.style("stroke-width", border);
circles.on("click", filter);
filter(["Arsenal"]);
function filter(d) {
d3.select("body").selectAll(null);
var filterss = teamData.filter(e =>e[0] === d[0])[0];
var team = filterss.slice(0, 1);
filterss = filterss.slice(1, filterss.length);
team = team + ": "
filterss = filterss.join(", ")
console.log(team + filterss);
new d3plus.TextBox()
.select(textBox.node())
.data([team + filterss])
.text(function(d) {
return d;
})
.width(textBox.select('rect').attr("width"))
.fontSize(20)
.render();
}
</script>
</body>
</html>
关于javascript - d3Plus 和环绕文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51810642/
我很确定我错过了一些东西,但我找不到(即谷歌)为 Google Plus 创建测试帐户的可能性。 但是,肯定不允许创建虚假用户帐户进行测试,那么,如何使用多个(我的)帐户测试我的 G+ 应用程序? 最
有没有办法查看与 Google Plus 共享您的网站的人的列表(即点击特定 URL 加一按钮的人)? 最佳答案 点击 +1 按钮与分享并不完全相同(例如作为事件的一部分),但您确实可以使用 Goog
所以我试图用我的 sqlite 数据库中的行填充一个对象,如下所示: - (id) initWithSQLite:(sqlite3_stmt *)row andDatabase:(Database*)
R有没有+=的概念? (加等号)或 ++ (plus plus) 像 c++/c#/others 一样吗? 最佳答案 不,它没有,请参阅:R Language Definition: Operator
R有没有+=的概念? (加等号)或 ++ (plus plus) 像 c++/c#/others 一样吗? 最佳答案 不,它没有,请参阅:R Language Definition: Operator
假设我有一个在线购物系统,并且有许多用户注册了它。我想要一个功能,当我添加新产品或对特定产品进行促销时,我的 Google+ 页面会更新,因为产品的详细信息会自动发布在那里。它只会用于后台办公目的。
我经营一个博客并使用 Google Plus 作为推广工具,在 G+ 上发布每次更新。由于我有数百名关注者,我的 G+ 帖子经常有几条评论:我想在我的博客上展示它们! 我知道有一些工具可以根据 G+
链接:https://sites.google.com/site/oauthgoog/Home/emaildisplayscope 在上面的链接中,我添加了电子邮件范围 https://www.goo
在这个简单的脚本中我需要你的一点帮助。我正在尝试创建一个通过阅读 Windows 标题来运行“taskkill”的脚本,但我不知道如何让它在 C++ 中运行。据我所知,批量处理将非常容易 system
map mp; 我能看懂下面的代码: mp[1] = 1; mp[2] = 2; 但这有什么意义呢? mp[3]++; 不设置 mp[3] = n;(n 可以是整数)。 最佳答案 当 map 的 op
每当我需要从缓存中检索数据时,我都会使用 FromCache() 方法。 我没有设置任何默认缓存策略,而是使用默认情况下使用的任何 EF plus。 默认的缓存持续时间是多少?等一下?还是无限? 最佳
我正在我的应用程序中实现 google plus。我想在用户共享消息后实现回调函数。请让我知道在点击 google plus 中的共享按钮后是否可以实现回调。 提前致谢 普拉塔普 最佳答案 通过设置共
我有一个使用 Google+ API 列出您圈子中的用户的应用程序。这很好用,除了一件事:API 没有说明用户是否有图片,或者图片是否只是占位符(蓝色剪影)。 https://developers.g
是否可以将 Google 社区嵌入网站页面? 这样,我们的客户既可以从我们网站的内容和所有其他功能中受益,又可以使用 Google 社区进行协作。 理想情况下,我想抓取一个 Javascript 代码
我在 Google Plus 上有大量相册。我正在寻找一种有效的方式来下载它们。如果我将它们放在 Google Drive 上,我可以使用 skicka ,它有一些烦恼,但总体效果很好。 我正在寻找一
我正在建立一个网站,我想允许谷歌登录。我不希望我的客户再次将他们的个人资料图片上传到我的网站。我有一些关于如何使用 facebook 进行操作的线索,但是一旦用户通过 Google 帐户进行身份验证,
我想在我的网站上显示我的 facebook、twitter、linkedIn、google+ 页面的事件提要。对于 facebook 和 twitter,我通过引用他们的开发者网站(附图片)来获取提要
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
网上有许多关于如何从 Notepad Plus Plus (NPP) 运行文件的示例。但是它们都没有考虑到当前工作目录是 NPP 可执行文件的位置,而不是文件的位置这一事实。 通常他们是这样的: cm
使用 VIM 编辑文件我可以轻松地复制和粘贴文件的名称(或完整路径) 我正在努力(要了解我对 VIM 的意思,您可以看到: this question 或 wiki ); 是否有使用 Notepad+
我是一名优秀的程序员,十分优秀!