While similar to the "Spring Function" in qgraph in R and networkx in Python, springpy provides a simple way to visualize a distance matrix using the Fruchterman Reingold method. Springpy allows you to create a spring graph or animate a distance matrix in just one line of code.
pip3 install springpy
import springpy as sp
matrix = [[0 , 0.00638545, 0.28778769],
[0.00638545, 0 , 0.21402251],
[0.28778769, 0.21402251, 0 ]]
# Show a matplotlib animation
sp.animate(matrix)
# Save to video (Default Name:"spring_result.mp4")
sp.animate(matrix, save=True)
# Show a matplotlib graph
sp.graph(matrix)
# Save the graph(Default Name:"spring_result.jpg")
sp.graph(matrix, save=True)
Input: A distance matrix embedded into a 2D Python List.
Data: dmatrix.csv Code: example.py
Result(animation & video):
springpy_result.mp4
Result(graph):
import springpy as sp
# Width of the graph, default 100px
sp.w = 100
# Height of the graph, default 100px
sp.h = 100
# Cool down delta, default 0.975
sp.delta = 0.975
# The eplison, if the change is smaller than this value, then stop iterating, default 5
sp.eplison = 10
# Max iteration, the maximum number of iterations, default 500
sp.MaxIter = 500
sp.animate(self, matrix, save=False, interval=100, VideoName="springpy_result.mp4"):
"""
:param save: whether to save the video, default False
:param interval: the interval between frames, default 100
:param VideoName: the name of the video for the result, default "springpy_result.gif".
Note that this name must include the suffix (ie .gif)
"""
sp.graph(self, matrix, save=False, ImageName = "springpy_result.jpg"):
"""
:param save: whether to save the graph, default False
:param VideoName: the name of the graph for the result, default "springpy_result.jpg".
Note that this name must include the suffix (ie .jpg or .png)
"""