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
yudhi irw 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