我正在创建一个像这样的词云:
我的英语单词“ Tickets”固定为160px。如何设置非英语单词的最小大小(例如32)?我正在使用d3.js和Math.random()。
var languages = [{"text":"Tickets"},{"text":"Fahrkarten"},{"text":"Entradas"},{"text":"Billets"},{"text":"Biglietti"},{"text":"チケット"},{"text":"티켓"},{"text":"Bilhetes"},{"text":"门票"},{"text":"門票"}];
var eases = [d3.easeExp,d3.easeSin,d3.easeLinear,d3.easeCubic];
var easesItem = eases[Math.floor(Math.random()*eases.length)];
console.log(easesItem);
var color = d3.scaleLinear()
.domain([0,1,2,3,4,5,6,10,15,20,100])
.range(["#000000", "#2F4F4F", "#708090", "#778899", "#808080", "#696969", "#A9A9A9", "#C0C0C0", "#D3D3D3", "#DCDCDC"]);
var layout = d3.layout.cloud()
.size([1020, 1980])
.words(languages)
.padding(5)
.rotate(function() { return ~~(Math.random() * 2) * 90; })
.font("MoMA Sans Office")
.fontSize(function(d) { if(d.text === 'Tickets') { return 160; } else { return 10 + Math.random() * 160; } })
.on("end", draw);
layout.start();
注意:屏幕每5秒更改一次,并且单词以随机的顺序,颜色和大小出现,除了英语单词“ Ticket”(其颜色和顺序随机,但始终为160px)之外。我希望避免使用很小的单词。
答案 0 :(得分:0)
我假设此行设置了fontsize
:
.fontSize(function(d) { if(d.text === 'Tickets') { return 160; } else { return 10 + Math.random() * 160; } })
,并且您希望最小尺寸为32:
.fontSize(function(d) { if(d.text === 'Tickets') { return 160; } else { return 32 + Math.random() * (160 - 32); } })
这应该将最小字体设置为32,最大字体设置为160。