How to change attributes of a networkx / matplotlib graph drawing?

2024/10/12 1:29:59

NetworkX includes functions for drawing a graph using matplotlib. This is an example using the great IPython Notebook (started with ipython3 notebook --pylab inline):

enter image description here

Nice, for a start. But how can I influence attributes of the drawing, like coloring, line width and labelling? I have not worked with matplotlib before.

Answer

IPython is a great tool for finding out what functions (and objects) can do. If you type

[1]: import networkx as nx
[2]: nx.draw?

you see

Definition: nx.draw(G, pos=None, ax=None, hold=None, **kwds)

**kwds: optional keywordsSee networkx.draw_networkx() for a description of optional keywords.

And if you therefore type

[10]: nx.draw_networkx?

you will see

node_color: color string, or array of floats
edge_color: color string, or array of floats
width: floatLine width of edges (default =1.0)
labels: dictionaryNode labels in a dictionary keyed by node of text labels (default=None)

So, armed with this information, and a bit of experimentation, it is not hard to arrive at:

import matplotlib.pyplot as plt
import numpy as np
import networkx as nx
import stringG = nx.generators.erdos_renyi_graph(18, 0.2)
nx.draw(G,node_color = np.linspace(0,1,len(G.nodes())),edge_color = np.linspace(0,1,len(G.edges())),width = 3.0,labels = {n:l for n,l in zip(G.nodes(),string.ascii_uppercase)})
plt.show()

which yields

enter image description here

https://en.xdnf.cn/q/69708.html

Related Q&A

Deploying MLflow Model without Conda environment

Currently working on deploying my MLflow Model in a Docker container. The Docker container is set up with all the necessary dependencies for the model so it seems redundant for MLflow to also then crea…

Insert Data to SQL Server Table using pymssql

I am trying to write the data frame into the SQL Server Table. My code:conn = pymssql.connect(host="Dev02", database="DEVDb") cur = conn.cursor() query = "INSERT INTO dbo.SCORE…

module object has no attribute discover_devices

Im trying to get Pybluez to work for me. Here is what happens when I try to discover bluetooth devises. import bluetooth nearby_devices = bluetooth.discover_devices()Traceback (most recent call last):F…

scipy sparse matrix: remove the rows whose all elements are zero

I have a sparse matrix which is transformed from sklearn tfidfVectorier. I believe that some rows are all-zero rows. I want to remove them. However, as far as I know, the existing built-in functions, e…

Time complexity for adding elements to list vs set in python

Why does adding elements to a set take longer than adding elements to a list in python? I created a loop and iterated over 1000000 elements added it to a list and a set. List is consistently taking ar…

ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device

I was trying to install turicreate using pip install -U turicreate But got the error Could not install packages due to an EnvironmentError: [Errno 28] Nospace left on device.I followed all the steps on…

How to find cluster centroid with Scikit-learn [closed]

Closed. This question needs debugging details. It is not currently accepting answers.Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to repro…

How do I use the FPS argument in cv2.VideoWriter?

Ok, so I am making a video. I want to know exactly how to use the FPS argument. It is a float, so I assumed it was what interval do I want between each frame. Can you give an example? I just want to k…

Best practice for using common subexpression elimination with lambdify in SymPy

Im currently attempting to use SymPy to generate and numerically evaluate a function and its gradient. For simplicity, Ill use the following function as an example (keeping in mind that the real functi…

Determine if a text extract from spacy is a complete sentence

We are working on sentences extracted from a PDF. The problem is that it includes the title, footers, table of contents, etc. Is there a way to determine if the sentence we get when pass the document t…