Giter Site home page Giter Site logo

clustering based on groups about vis HOT 6 CLOSED

almende avatar almende commented on July 26, 2024
clustering based on groups

from vis.

Comments (6)

wimrijnders avatar wimrijnders commented on July 26, 2024 1

It's not a feature that is available as of today. However, it's not too hard to add this functionality outside of Network. Here is my take on it:

// Pre: data.nodes and data.edges initialized as vis.DataSet instances

/**
 * Extract given field from items array and return unique values in an array
 */
function fieldFromItems(items, field) {
  var tmpHash = {};
  for (var n in items) {
    tmpHash[items[n][field]] = true;
  }

  return Object.keys(tmpHash);
}


function collectGroups() {
  var items = data.nodes.get({
    fields: ['group']
  });
  return fieldFromItems(items, 'group');
}

// Determine all distinct group id's
var groups = collectGroups();

// Cluster per group
for (var n in groups) {
  var group = groups[n];

  network.cluster({
    joinCondition: function(item) {
      return item.group == group;
    },
    clusterNodeProperties: {
      label: 'Group ' + group
    }
  });
}

HTH

from vis.

AlexDM0 avatar AlexDM0 commented on July 26, 2024

Hi Jimmy,

Currently this is not possible. This concept has been on our internal
list but I cannot give any estimates on if or when this will be
included. First and foremost vis is a visualization library. Feature
based clustering could be very useful but it is also more on the side
of data analysis. Our main concern is that we will have to (partly)
disregard the connections and create a feature vector with properties
for the nodes. This feature vector will be clustered through some kind
of kmeans algorithm. Once this is done, the presentation of such
clusters might be very illogical since you're collapsing a high
dimensional space (feature vector) to a 2d space where only X and Y
matter.

We would very much appreciate to hear about your use case. Maybe you
have a way or idea of using feature based clustering that would
sidestep these problems.

Regards,

Alex

from vis.

ymmijgno avatar ymmijgno commented on July 26, 2024

Hi Alex,

Thanks for the explanation.

I don't have any idea how to solve the problems you mentioned.
I just wanted to see how the graph would look if I cluster nodes based on features.

My use case is simple. Using the clustering example from vis.js, instead of clustering connected nodes while zooming out, I would like to cluster nodes with similar attributes.

from vis.

AlexDM0 avatar AlexDM0 commented on July 26, 2024

Hi Jimmy,

Currently, we favor the method that respects the structure of the network. I cannot promise we'll expand upon this further but who knows? :)

Thank you for using vis!

from vis.

Divyanshu07 avatar Divyanshu07 commented on July 26, 2024

Is this feature available as of today?

from vis.

JasonBruno avatar JasonBruno commented on July 26, 2024

I too am wondering if this feature is available as of today.

from vis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.