1
我試圖使桑基功能Matplotlib對準它的標籤,這樣的圖是更具可讀性。
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()
在sankey.py代碼中,我發現那裏的水平對齊方式設置爲中心 公頃=中心
# 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.
是否有可能以某種方式獲取文本Sankey.py的排列方式與默認值不同?