question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Question regarding parameters when creating MatrixPlot or CircosPlot

See original GitHub issue

When I am creating a MatrixPlot or CircosPlot like this everything works fine:

g = nv.arc(G, node_color_by="community", group_by="community")
annotate.arc_group(G, group_by="community")
g.get_figure().set_size_inches(10,10)

However, I wanted to adjust the edge width and set it by the weight in my weighted graph G. I trid adding the parameter

edge_lw_by="weight"

But got the following error message: data_linewidth() missing 1 required positional argument: ‘ref_data’

Is this not implemented yet or am I doing something wrong here?

Also: I would also like to adjust some options regarding opacity for the matrix plot - here I run into similar problems.

Thanks!!

P.S.: From the code:

  • edge_lw_by: Edge metdata attribute key to set edge line width.
    • edge_alpha_by: Edge metdata attribute key to set edge transparency.

Issue Analytics

  • State:open
  • Created 2 years ago
  • Comments:6 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
ericmjlcommented, Nov 8, 2021

I see what you mean, @NiRuff. Thanks for being patient here 😄.

The nature of large graphs means that the matrix would be difficult to visualize if you also wanted the transparency/lightness effect scaled by weight. I have a hunch you’ve hit the limits of what data visualization could do without considering the tradeoffs that need to happen.

The first I’d suggest is using panels of matrix plots rather than a single one. In this case, one plot to show clustering structure w/o showing weights, and another plot to show with weights. Put them side by side and you have a very effective data viz panel.

I believe there are two edge_kwargs that could help here, and you could use either one of them to start with. The first is the edge_alpha_scale kwarg, which lets you multiply the alpha (transparency) value by some scalar number across the board. The other is edge_alpha_bounds, which lets you set an upper-bound and lower-bound for transparency scaling. Those would result in visual inaccuracies but a more easily visualized single panel.

If I were in your shoes, though, I’d still use the first option. They make the data storytelling much easier.

1reaction
ericmjlcommented, Nov 6, 2021

@NiRuff while it’s technically possible to use edge_lw_by in a matrix plot, I might suggest doing edge_alpha_by instead. That might help a bit with the visualization, and it makes a bit more sense in this particular setting. The matrix plot is effectively a dot-matrix kind of plot; edge “width” would correspond to circle radius, but transparency is a better thing.

Perhaps something we should do here is to ensure that the dots actually have a border around them. What do you all think?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Issues · ericmjl/nxviz - GitHub
Contribute to ericmjl/nxviz development by creating an account on GitHub. ... Question regarding parameters when creating MatrixPlot or CircosPlot bug.
Read more >
plotting - Difficulty with MatrixPlot - Mathematica Stack Exchange
I am just trying to plot this 3x3 matrix with MatrixPlot which according to wolfram generates a plot that gives a visual representation...
Read more >
26. Network Analysis in Python (Part 1) from DataCamp
Circos plots are a rational, non-cluttered way of visualizing graph data, in which nodes are ordered around the circumference in some fashion, ...
Read more >
Usage — nxviz 0.3 documentation - Read the Docs
from nxviz.plots import MatrixPlot m = MatrixPlot(er) m.draw() plt.show() ... nxviz Circos plot. For a full list of parameters, see the nxviz.plots.
Read more >
Visualisation with Circos - Galaxy Training!
Developing a quality Circos plot involves a lot of trial and error to find the best ... for several species) can be found...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found