Comments (8)
Hey, that’s a great idea! I don’t think the implementation would be too tricky. Are you interested in giving it a shot? It would be a great first time contribution. I don’t have any bandwidth for this myself, but could help with reviews and releasing the changes once they’re implemented.
from kepler-mapper.
I might be interested if I knew more python. I would look into other graphing packages as well but Mapper has great visualization abilities which is very appealing.
from kepler-mapper.
Can you post an example networkx dataset, with what you'd want it to look like? I'm having a hard time imagining, I've never worked with networkx.
And do you know javascript? The edge-drawing logic is implemented both in python and also in javascript. Actually I just realized that the javascript PR was never merged. Here it is in javascript. https://github.com/scikit-tda/kepler-mapper/pull/231/files#diff-e18cbd76668f2d81f3de161789979b48d4d0892b76458ad212722d374a22cc39R633-R679
(and here is the same logic in python
kepler-mapper/kmapper/nerve.py
Lines 53 to 65 in 7dc4d0a
Also, fyi, the javascript visualization currently doesn't do anything with edge weights, but it could.
from kepler-mapper.
I made a simple example for a graph with 5 vertices and varying edge weights connecting every vertices. The drawing from networkx shows a complete graph. I would like to be able to play around with the threshold for the edge weight in Mapper to decide when to show two vertices are connected or not.
I cannot claim to understand javascript but I think if one adds an if statement to check that the edge weight between nodes i and j is above or below some threshold before line 646, then it will accomplish what I am thinking of.
from kepler-mapper.
This example of an interactive persistence diagram is very close to what I am thinking of.
from kepler-mapper.
How does an "edge weight" relate to kepler-mapper's "min intersection" argument? I suppose actually that your use-case doesn't use kmapper.map at all -- you're just using kmapper.visualize with your own graph (right?). Therefore, you don't have a concept of a "min intersection." It would be helpful to see where you use kmapper functions in your workflow.
from kepler-mapper.
This example of an interactive persistence diagram is very close to what I am thinking of.
The author of the example told me that the interactivity was just a series of pre-generated persistence diagrams and nothing was updated dynamically.
How does an "edge weight" relate to kepler-mapper's "min intersection" argument? I suppose actually that your use-case doesn't use kmapper.map at all -- you're just using kmapper.visualize with your own graph (right?). Therefore, you don't have a concept of a "min intersection." It would be helpful to see where you use kmapper functions in your workflow.
I should have specified that the vertices in my graph are associated with a real number in [0, M], where M is the max value of all vertex values in the graph. The graph is not complete and the edge weight between 2 vertices is the absolute difference between the 2 vertex values. All the vertices in the graph will be grouped according to their values, say one group for values in [0, a] and another for values in [a, M]. The "min intersection" can be some number delta so that some vertices will belong to the group [a - delta, a+ delta] and those vertices will "connect" the 2 vertices in the Mapper graph.
To summarize, edge weight is not directly related to min intersection from my description. I am primarily interested in seeing how the membership of the vertices in the Mapper graph changes with different thresholds on edge weights to decide when 2 vertices in the original graph is connected. Does this help?
from kepler-mapper.
I need to see exactly how and where in your flow you are currently using any code specifically from the kepler-mapper library.
I am guessing now that you're just using the plotlyviz stuff, which is totally separate from the .visualize javascript stuff.
from kepler-mapper.
Related Issues (20)
- try different min_intersections from the visualization
- not able to understand this HOT 1
- Class methods are not being rendered by autosummary
- Examples, gallery not included in readthedocs build HOT 2
- idea: rewrite main readme and release file to .rst, import into docs HOT 5
- Bug: min_cluster_samples should not be set to a non-integer HOT 4
- plotlyviz expects 1d color values, but gets 2d instead HOT 1
- Outdated Documentation HOT 1
- `test_cubes_overlap` may be faulty HOT 2
- Doc toc restructure proposal (minor) HOT 4
- Shadowed test fails to run
- Min-Max confusion in projection statistic in cluster details
- making html files generated by visualize self-contained
- plotlyviz error
- Losing data
- Please refer to igraph instead of python-igraph HOT 2
- Directly producing color values for each node
- Overlapping bins in the HTML visualization.
- Issue with generating visuals in mapper HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kepler-mapper.