Skip to content

Commit 605060f

Browse files
committed
Updated
1 parent f7ec196 commit 605060f

File tree

2 files changed

+57
-4
lines changed

2 files changed

+57
-4
lines changed

patchworklib/patchworklib.py

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#warnings.simplefilter('ignore', SettingWithCopyWarning)
2929
warnings.simplefilter('ignore')
3030

31-
__version__ = "0.6.0"
31+
__version__ = "0.6.1"
3232
_basefigure = plt.figure(figsize=(1,1))
3333
_render = _basefigure.canvas.get_renderer()
3434
_scale = Affine2D().scale(1./_basefigure.dpi)
@@ -1656,8 +1656,15 @@ def __getitem__(self, item):
16561656
return _axes_dict[item]
16571657

16581658
elif type(item) == tuple:
1659-
self.bricks_dict[item[0]]._parent = self._label
1660-
return self.bricks_dict[item[0]]
1659+
new_bricks_dict = {}
1660+
for key in item:
1661+
if type(key) == str:
1662+
new_bricks_dict[key] = self.bricks_dict[key]
1663+
elif type(key) in (Bricks, Brick, cBrick):
1664+
new_bricks_dict[key] = self.bricks_dict[key.get_label()]
1665+
new_bricks = Bricks(bricks_dict=new_bricks_dict)
1666+
new_bricks._parent = self._label
1667+
return new_bricks
16611668

16621669
def __getattribute__(self, name):
16631670
if name == "case":
@@ -1772,6 +1779,52 @@ def change_plotsize(self, new_size):
17721779
x0, x1, y0, y1 = self.get_outer_corner()
17731780
self._originalsize = (abs(x1-x0), abs(y0-y1))
17741781

1782+
def align_xlabels(self, keys=None):
1783+
global _basefigure
1784+
renderer = _basefigure.canvas.get_renderer()
1785+
if keys is None:
1786+
keys = self.bricks_dict.keys()
1787+
else:
1788+
pass
1789+
1790+
miny = None
1791+
for key in keys:
1792+
x, y = self[key].xaxis.get_label().get_position()
1793+
text = self[key].xaxis.get_label().get_text()
1794+
if miny is None or y < miny:
1795+
miny = y
1796+
1797+
for key in keys:
1798+
pad = self[key].xaxis.labelpad
1799+
x, y = self[key].xaxis.get_label().get_position()
1800+
text = self[key].xaxis.get_label().get_text()
1801+
self[key].set_xlabel(text, x=x, y=y, labelpad=pad + (y-miny)*(72 / _basefigure.dpi))
1802+
1803+
def align_ylabels(self, keys=None, ha="left"):
1804+
global _basefigure
1805+
renderer = _basefigure.canvas.get_renderer()
1806+
if keys is None:
1807+
keys = self.bricks_dict.keys()
1808+
else:
1809+
pass
1810+
1811+
minx = None
1812+
for key in keys:
1813+
x, y = self[key].yaxis.get_label().get_position()
1814+
text = self[key].yaxis.get_label().get_text()
1815+
#coordinate = self[key].transAxes.inverted()
1816+
#bbox_text = self[key].yaxis.get_label().get_window_extent(renderer=renderer)
1817+
#bbox_text = Bbox(coordinate.transform(bbox_text))
1818+
#x = x + bbox_text.width
1819+
if minx is None or x < minx:
1820+
minx = x
1821+
1822+
for key in keys:
1823+
pad = self[key].yaxis.labelpad
1824+
x, y = self[key].yaxis.get_label().get_position()
1825+
text = self[key].yaxis.get_label().get_text()
1826+
self[key].set_ylabel(text, x=x, y=y, labelpad=pad + (x-minx)*(72 / _basefigure.dpi))
1827+
17751828
def set_supxlabel(self, xlabel, labelpad=None, *, loc=None, **args):
17761829
"""
17771830

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
URL = 'https://github.com/ponnhide/patchworklib'
1111
LICENSE = 'GNU General Public License v3.0'
1212
DOWNLOAD_URL = 'https://github.com/ponnhide/patchworklib'
13-
VERSION = '0.6.0'
13+
VERSION = '0.6.1'
1414
PYTHON_REQUIRES = ">=3.7"
1515

1616
INSTALL_REQUIRES = [

0 commit comments

Comments
 (0)