graphistry / pygraphistry

PyGraphistry is a Python library to quickly load, shape, embed, and explore big graphs with the GPU-accelerated Graphistry visual graph analyzer
BSD 3-Clause "New" or "Revised" License
2.17k stars 206 forks source link

[FEA] Have an option to display Relationship names without hover (can work for graphs below a certain number of nodes/relations) #294

Open Parth-Joshi-6669 opened 2 years ago

Parth-Joshi-6669 commented 2 years ago

I am using graphistry to display my Neo4J graphs in a web-app and my graphs are not too big in size. Would love to have an option to show relationship names above the edges in my graphs.

Since graphistry is very useful in showing massive graphs with lots of nodes and relationships, I can understand the relationship being shown only on hover, but would it be possible to display relationship names even without hover for graphs with number of nodes and relationships below a particular threshold?

lmeyerov commented 2 years ago

Thanks @Parth-Joshi-6669 that makes a lot of sense, and you indeed guessed the typical case for big graphs!

I'm thinking through a few orthogonal aids here, curious if this matches up to your thinking?

1. Edges of interest prioritization cascade:

Alternatively: Should we aim for a spatially even spread instead, similar to what's done for points? This may be easier to do after we support thick edges.

Also unclear: Should we support some sort of type-based selection, like "only show cars" (1 level), "only show cars that are also 4 wheel drive" (2 level), or "only show cars with > 30mpg or electric" (generic expression)? This feels like overreach for edges, but has been in discussion for nodes, so may come in with / as part of that...

2. Edges of interest label placement options

Currently, we either put edge labels in the middle or follow the cursor hover. Instead:

3. Edges of interest rotation options

4. Edges of interest text rotation

5. Edges of interest label rendering: Same as POI --

Currently, in POI, there's a zoom effect where zoomed out you see the full background label, while zoomed in, just the text. I suspect we should do the same here.