1 def mergeAxes(axesList):
3 Takes the given `axesList`, and returns a new `matplotlib.axes` instance
4 that contains all the lines in the given axes.
7 A list of instances of `matplotlib.axes`.
12 if not isinstance(axesList, list):
15 if not isinstance(axes, matplotlib.axes.Axes):
19 retAxes = matplotlib.figure.Figure().add_subplot(1, 1, 1)
26 for sourceAxes
in axesList:
27 for line
in sourceAxes.get_lines():
28 newLine, = retAxes.plot(line.get_xdata(), line.get_ydata())
29 retLines.append(newLine)
31 titles.append(sourceAxes.get_title())
32 xLabels.append(sourceAxes.get_xlabel())
33 yLabels.append(sourceAxes.get_ylabel())
35 for text
in sourceAxes.get_legend().get_texts():
36 legendLabels.append(text.get_text())
38 retAxes.legend(retLines, legendLabels)
40 uniqueTitles = list(set(titles))
41 uniqueXLabels = list(set(xLabels))
42 uniqueYLabels = list(set(yLabels))
44 def labelSetter(uniqueLabels, setter):
45 if len(uniqueLabels) == 0:
48 if len(uniqueLabels) == 1:
49 setter(uniqueLabels[0])
53 for l
in uniqueLabels:
60 labelSetter(uniqueTitles, retAxes.set_title)
61 labelSetter(uniqueXLabels, retAxes.set_xlabel)
62 labelSetter(uniqueYLabels, retAxes.set_ylabel)