I am attempting to make the Sankey function in Matplotlib to align it's labels so that the graph is more readable.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="Example Systems")
flows = [1, -.5, -.25,-.25]
sankey = Sankey(ax=ax, unit=None)
sankey.add(flows=flows, label='one',
labels=['1', 'horizontal allignment is currently set to center.', 'it would be nice if I could change it to justify right.', '4'],
pathlengths = [.5,.2,.5, .75],
orientations=[0, -1,-1, 0])
diagrams = sankey.finish()
diagrams[-1].patch.set_hatch('/')
plt.legend(loc='best')
plt.show()
In the sankey.py code I found where the horizontal alignment is set to Center ha=center
# Add the path labels.
texts = []
for number, angle, label, location in zip(flows, angles, labels,
label_locations):
if label is None or angle is None:
label = ''
elif self.unit is not None:
quantity = self.format % abs(number) + self.unit
if label != '':
label += "\n"
label += quantity
texts.append(self.ax.text(x=location[0], y=location[1],
s=label,
ha='center', va='center'))
# Text objects are placed even they are empty (as long as the magnitude
# of the corresponding flow is larger than the tolerance) in case the
# user wants to provide labels later.
Is it possible to somehow get the text in the Sankey.py to allign differently than the defaults?