MovieWriter imagemagick unavailable

14.9k Views Asked by At

I am trying to animate the graph, but jupyter is giving error:

MovieWriter imagemagick unavailable. And just animating the 1st image(which is obvious as MovieWriter is not working). How to fix it?

Python version: 3

Here is the code

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
from matplotlib.animation import FuncAnimation

# number of nodes
size = 10

# generate graph
G=nx.complete_graph(size)

frame = np.random.randint(0, 5, (size, size)) # random ndarray between 0 and 5, length and number of frames = number of nodes in the graph

pos = nx.spring_layout(G)
nodes = nx.draw_networkx_nodes(G,pos)
edges = nx.draw_networkx_edges(G,pos)
plt.axis('off')

def update(i):
    nc = frame[i] # np.random.randint(2, size=200)
    nodes.set_array(nc)
    return nodes,

# output animation; its important I save it
fig = plt.gcf()
ani = FuncAnimation(fig, update, interval=50, frames=range(size), blit=True)
ani.save('crap.gif', writer='imagemagick',  savefig_kwargs={'facecolor':'white'}, fps=1)

Expectation: Animation should be working and will be able to show the updated color

1

There are 1 best solutions below

1
On

It is working after installing the networkx package and adding pillowwritter as shown below.

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
from matplotlib.animation import FuncAnimation, PillowWriter 

networkx