diff --git a/BioRadar/index.html b/BioRadar/index.html
index ec70de6f..dae0bdf9 100644
--- a/BioRadar/index.html
+++ b/BioRadar/index.html
@@ -774,10 +774,10 @@
saving
diff --git a/BioRadar/src/script/main.js b/BioRadar/src/script/main.js
index a9f601fa..bb80853e 100644
--- a/BioRadar/src/script/main.js
+++ b/BioRadar/src/script/main.js
@@ -2046,7 +2046,7 @@ function recomendName (clusterarr){
}
function recomendColor (clusterarr) {
- let colorCa = colorScaleList['customschemeCategory'].slice();
+ let colorCa = d3.schemeCategory10;//colorScaleList['customschemeCategory'].slice();
if (clusterarr.length>10 && clusterarr.length<21)
colorCa = d3.schemeCategory20;
else if (clusterarr.length>20)
diff --git a/BioRadar/src/script/timeSpaceModel.js b/BioRadar/src/script/timeSpaceModel.js
index 270af8a8..f54a889c 100644
--- a/BioRadar/src/script/timeSpaceModel.js
+++ b/BioRadar/src/script/timeSpaceModel.js
@@ -44,6 +44,7 @@ d3.TimeSpace = function () {
linkConnect: 'straight',
isSelectionMode: false,
isCurve: false,
+ separate:0.5,
filter:{ distance:0.5},
component:{
dot:{size:5,opacity:0.9},
@@ -263,7 +264,7 @@ d3.TimeSpace = function () {
target.__metrics.position = [0,0,0];
if (!path[target.name])
path[target.name] = [];
- path[target.name].push({name: target.name,index:i,__timestep: target.__timestep, timestep: target.timestep, value: [0,0,0], cluster: target.cluster});
+ path[target.name].push({name: target.name,index:i,__timestep: target.__timestep, timestep: target.timestep, value: [0,0,0], cluster: target.cluster,index:i});
});
// console.log(datain.filter(d=>d[0]===-1))
xscale.range([-graphicopt.widthG()/2,graphicopt.widthG()/2]);
@@ -343,16 +344,16 @@ d3.TimeSpace = function () {
d3.select('#modelSortBy').on("change", function () {handleTopSort(this.value)})
d3.select('#modelFilterBy').on("change", function(){handleFilter(this.value)});
- d3.select("span#filterList+.copybtn").on('click',()=>{
- var copyText = document.getElementById("filterList");
- var textArea = document.createElement("textarea");
- textArea.value = copyText.textContent;
- document.body.appendChild(textArea);
- textArea.select();
- document.execCommand("Copy");
- textArea.remove();
- M.toast({html: 'Copied to clipboard'})
- });
+ // d3.select("span#filterList+.copybtn").on('click',()=>{
+ // var copyText = document.getElementById("filterList");
+ // var textArea = document.createElement("textarea");
+ // textArea.value = copyText.textContent;
+ // document.body.appendChild(textArea);
+ // textArea.select();
+ // document.execCommand("Copy");
+ // textArea.remove();
+ // M.toast({html: 'Copied to clipboard'})
+ // });
drawSummaryRadar([],handle_data_summary([]),'#ffffff');
start();
@@ -379,9 +380,21 @@ d3.TimeSpace = function () {
function handleFilter(key){
d3.select('#distanceFilterHolder').classed('hide',true);
switch (key) {
+ // case 'groups':
+ // const lists = d3.keys(path).filter(d=>path[d][0].cluster!==path[d][1].cluster);
+ // hightlightGroupNode(lists);
+ // break;
case 'groups':
- const lists = d3.keys(path).filter(d=>path[d][0].cluster!==path[d][1].cluster);
- hightlightGroupNode(lists);
+ var lists = d3.keys(path).filter(d=>path[d][0].cluster!==path[d][1].cluster);
+ var nest = d3.nest().key(d=>''+path[d][0].cluster+'_'+path[d][1].cluster).rollup(d=>{
+ let max = d3.max(d,p=>path[p].distance);
+ return d.find(p=>path[p].distance===max);
+ }).entries(lists);
+ nest.sort((a,b)=>-path[a.value].distance+path[b.value].distance);
+ console.log(nest)
+
+ // hightlightGroupNode(nest.slice(0,10).map(d=>d.value),undefined,0.2,0.9);
+ hightlightGroupNode(nest.slice(0,10).map(d=>d.value),undefined,0.2,0.9);
break;
case "wt":
hightlightGroupNode([],0);
@@ -608,13 +621,18 @@ d3.TimeSpace = function () {
}
}
- function hightlightGroupNode(intersects,timestep) { // INTERSECTED
+ function hightlightGroupNode(intersects,timestep,customopacityNode,customopacityLink) { // INTERSECTED
if (intersects.length){
- d3.select("span#filterList").text(intersects.join(', '));
- d3.select("span#filterList+.copybtn").classed('hide',false);
+ let badge=d3.select("#filterList").selectAll('span.filtered').data(intersects);
+ badge.exit().remove();
+ badge.enter().append('span').attrs({
+ class: 'filtered'
+ }).merge(badge).text(d=>d).on('mouseover',function(d){hightlightNode([path[d][0]])});
+
+ // d3.select("span#filterList+.copybtn").classed('hide',false);
}else{
- d3.select("span#filterList").text('');
- d3.select("span#filterList+.copybtn").classed('hide',true);
+ d3.select("#filterList").selectAll('*').remove();
+ // d3.select("span#filterList+.copybtn").classed('hide',true);
}
let ishighLink = timestep===undefined;
freezemouseoverTrigger = true;
@@ -627,9 +645,9 @@ d3.TimeSpace = function () {
INTERSECTED.push(i);
attributes.alpha.array[i] = graphicopt.component.dot.opacity;
lines[d.name].visible = ishighLink;
- lines[d.name].material.opacity = graphicopt.component.link.opacity;
+ lines[d.name].material.opacity = customopacityLink||graphicopt.component.link.opacity;
} else {
- attributes.alpha.array[i] = 0;
+ attributes.alpha.array[i] = customopacityNode||0;
lines[d.name].visible = false;
}
});
@@ -664,8 +682,14 @@ d3.TimeSpace = function () {
axesTime.getObjectByName("TimeText").lookAt(camera.position);
}
}catch(e){}
+ raycaster.setFromCamera(mouse, camera);
+ // try {
+ // console.log(datain[raycaster.intersectObject(points)[0].index])
+ // }catch (e) {
+ //
+ // }
if (mouseoverTrigger&&!freezemouseoverTrigger) { // not have filter
- raycaster.setFromCamera(mouse, camera);
+ // if (mouseoverTrigger) { // not have filter
if (!filter.length) {
var intersects = overwrite||raycaster.intersectObject(points);
//count and look after all objects in the diamonds group
@@ -1261,7 +1285,7 @@ d3.TimeSpace = function () {
target.__metrics.position = d;
let pointIndex = mapIndex.indexOf(i);
if (pointIndex!==undefined){
- p[pointIndex*3+0] = xscale(d[0]);
+ p[pointIndex*3+0] = xscale(d[0])+(graphicopt.separate*target.__timestep*graphicopt.widthG());
p[pointIndex*3+1] = yscale(d[1]);
// 3rd dimension as time step
@@ -1462,10 +1486,10 @@ d3.TimeSpace = function () {
}
}
function updateStraightLine(target, posPath, d, customZ) {
- lines[target.name].geometry.vertices[posPath * 2] = new THREE.Vector3(xscale(d[0]), yscale(d[1]), xscale(d[2]) || 0);
+ lines[target.name].geometry.vertices[posPath * 2] = new THREE.Vector3(xscale(d[0])+(graphicopt.separate*target.__timestep*graphicopt.widthG()), yscale(d[1]), xscale(d[2]) || 0);
// lines[target.name].geometry.vertices[posPath * 2] = new THREE.Vector3(xscale(d[0]), yscale(d[1]), d[2] || 0);
if (posPath)
- lines[target.name].geometry.vertices[posPath * 2 - 1] = new THREE.Vector3(xscale(d[0]), yscale(d[1]), xscale(d[2]) || 0);
+ lines[target.name].geometry.vertices[posPath * 2 - 1] = new THREE.Vector3(xscale(d[0])+(graphicopt.separate*target.__timestep*graphicopt.widthG()), yscale(d[1]), xscale(d[2]) || 0);
// lines[target.name].geometry.vertices[posPath * 2 - 1] = new THREE.Vector3(xscale(d[0]), yscale(d[1]), d[2] || 0);
lines[target.name].geometry.verticesNeedUpdate = true;
lines[target.name].geometry.computeBoundingBox();
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy