张雄 3 years ago
parent 7ac480e529
commit 43cbd4ea14

@ -17,6 +17,31 @@ function doWordCloud(data) {
} }
return arr1; return arr1;
} }
// 气泡大小算法
function bubbleDivide(val, maxVal, size) {
let percent = val / maxVal * 1.00;
if (0.15<percent<=0.25) {
return size * 1.5;
} else if (0.25<percent<=0.35) {
return size * 2.7;
} else if (0.35<percent<=0.45) {
return size * 3.6;
} else if (0.45<percent<=0.52) {
return size * 4.3;
} else if (0.52<percent<=0.58) {
return size * 4.9;
} else if (0.58<percent<=0.66) {
return size * 5.4;
} else if (0.66<percent<=0.80) {
return size * 5.8;
} else if (0.80<percent<=0.90) {
return size * 6.1;
} else if (0.90<percent<=1.00) {
return size * 6.3;
} else {
return size * 1.0;
}
}
// 创建词云的对象 // 创建词云的对象
function bubbleChart(data = [], format = []) { function bubbleChart(data = [], format = []) {
let [maxValue, temp] = [0, []]; let [maxValue, temp] = [0, []];
@ -74,22 +99,8 @@ function bubbleChart(data = [], format = []) {
let bakeColor = [...color]; let bakeColor = [...color];
// 气泡数据 // 气泡数据
let bubbleData = []; let bubbleData = [];
// 气泡基础大小 let basicSize = 20; //基础大小
let basicSize = 20; let repulsion = 90; //斥力因子
// 节点之间的斥力因子,值越大,气泡间距越大
let repulsion = 380;
// 根据气泡数量配置基础大小和斥力因子(以实际情况进行适当调整,使气泡合理分布)
if (data.length >= 5 && data.length < 10) {
basicSize = 20;
repulsion = 230;
}
if (data.length >= 10 && data.length < 20) {
basicSize = 30;
repulsion = 150;
} else if (data.length >= 20) {
basicSize = 40;
repulsion = 65;
}
// 填充气泡数据数组bubbleData // 填充气泡数据数组bubbleData
for (let item of data) { for (let item of data) {
// 确保气泡数据条数少于或等于气泡颜色数组大小时,气泡颜色不重复 // 确保气泡数据条数少于或等于气泡颜色数组大小时,气泡颜色不重复
@ -102,8 +113,8 @@ function bubbleChart(data = [], format = []) {
colorSet.delete(curColor); colorSet.delete(curColor);
bakeColor = [...colorSet]; bakeColor = [...colorSet];
// 气泡大小设置 // 气泡大小设置
let size = (item[format[1]] * basicSize * 2) / maxValue; //let size = (item[format[1]] * basicSize * 2) / maxValue;
if (size < basicSize) size = basicSize; let size = bubbleDivide(item[format[1]],maxValue,basicSize);
bubbleData.push({ bubbleData.push({
name: item[format[0]], name: item[format[0]],

@ -26,14 +26,14 @@ import createOpt from "./opt"
import { getAffectionsTime } from "@/api/EventdEC"; import { getAffectionsTime } from "@/api/EventdEC";
export default { export default {
name: "tonalCommunicationPosture", name: "tonalCommunicationPosture",
data() { props: {
return {
props: {
id: { id: {
type: String, type: String,
default: "", default: "",
}, },
}, },
data() {
return {
opt: {}, opt: {},
selDatas: [ selDatas: [
{ {

Loading…
Cancel
Save