Skip to content

Commit

Permalink
Updated
Browse files Browse the repository at this point in the history
  • Loading branch information
ponnhide committed May 14, 2023
1 parent f7ec196 commit 605060f
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 4 deletions.
59 changes: 56 additions & 3 deletions patchworklib/patchworklib.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
#warnings.simplefilter('ignore', SettingWithCopyWarning)
warnings.simplefilter('ignore')

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

elif type(item) == tuple:
self.bricks_dict[item[0]]._parent = self._label
return self.bricks_dict[item[0]]
new_bricks_dict = {}
for key in item:
if type(key) == str:
new_bricks_dict[key] = self.bricks_dict[key]
elif type(key) in (Bricks, Brick, cBrick):
new_bricks_dict[key] = self.bricks_dict[key.get_label()]
new_bricks = Bricks(bricks_dict=new_bricks_dict)
new_bricks._parent = self._label
return new_bricks

def __getattribute__(self, name):
if name == "case":
Expand Down Expand Up @@ -1772,6 +1779,52 @@ def change_plotsize(self, new_size):
x0, x1, y0, y1 = self.get_outer_corner()
self._originalsize = (abs(x1-x0), abs(y0-y1))

def align_xlabels(self, keys=None):
global _basefigure
renderer = _basefigure.canvas.get_renderer()
if keys is None:
keys = self.bricks_dict.keys()
else:
pass

miny = None
for key in keys:
x, y = self[key].xaxis.get_label().get_position()
text = self[key].xaxis.get_label().get_text()
if miny is None or y < miny:
miny = y

for key in keys:
pad = self[key].xaxis.labelpad
x, y = self[key].xaxis.get_label().get_position()
text = self[key].xaxis.get_label().get_text()
self[key].set_xlabel(text, x=x, y=y, labelpad=pad + (y-miny)*(72 / _basefigure.dpi))

def align_ylabels(self, keys=None, ha="left"):
global _basefigure
renderer = _basefigure.canvas.get_renderer()
if keys is None:
keys = self.bricks_dict.keys()
else:
pass

minx = None
for key in keys:
x, y = self[key].yaxis.get_label().get_position()
text = self[key].yaxis.get_label().get_text()
#coordinate = self[key].transAxes.inverted()
#bbox_text = self[key].yaxis.get_label().get_window_extent(renderer=renderer)
#bbox_text = Bbox(coordinate.transform(bbox_text))
#x = x + bbox_text.width
if minx is None or x < minx:
minx = x

for key in keys:
pad = self[key].yaxis.labelpad
x, y = self[key].yaxis.get_label().get_position()
text = self[key].yaxis.get_label().get_text()
self[key].set_ylabel(text, x=x, y=y, labelpad=pad + (x-minx)*(72 / _basefigure.dpi))

def set_supxlabel(self, xlabel, labelpad=None, *, loc=None, **args):
"""
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
URL = 'https://github.com/ponnhide/patchworklib'
LICENSE = 'GNU General Public License v3.0'
DOWNLOAD_URL = 'https://github.com/ponnhide/patchworklib'
VERSION = '0.6.0'
VERSION = '0.6.1'
PYTHON_REQUIRES = ">=3.7"

INSTALL_REQUIRES = [
Expand Down

0 comments on commit 605060f

Please sign in to comment.