Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4662d3f

Browse filesBrowse files
committed
make viewport rect code more readable
1 parent 0900bde commit 4662d3f
Copy full SHA for 4662d3f

File tree

Expand file treeCollapse file tree

1 file changed

+30
-33
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+30
-33
lines changed

‎fastplotlib/subplot.py

Copy file name to clipboardExpand all lines: fastplotlib/subplot.py
+30-33Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,21 @@ def __init__(
6969
self.set_viewport_rect()
7070

7171
def get_rect(self):
72-
i, j = self.position
73-
w, h = self.renderer.logical_size
72+
row_ix, col_ix = self.position
73+
width_canvas, height_canvas = self.renderer.logical_size
7474

7575
spacing = 2 # spacing in pixels
7676

77+
x_pos = ((width_canvas / self.ncols) + ((col_ix - 1) * (width_canvas / self.ncols))) + spacing
78+
y_pos = ((height_canvas / self.nrows) + ((row_ix - 1) * (height_canvas / self.nrows))) + spacing
79+
width_subplot = (width_canvas / self.ncols) - spacing
80+
height_suplot = (height_canvas / self.nrows) - spacing
81+
7782
return np.array([
78-
((w / self.ncols) + ((j - 1) * (w / self.ncols))) + spacing,
79-
((h / self.nrows) + ((i - 1) * (h / self.nrows))) + spacing,
80-
(w / self.ncols) - spacing,
81-
(h / self.nrows) - spacing
83+
x_pos,
84+
y_pos,
85+
width_subplot,
86+
height_suplot
8287
])
8388

8489
def set_viewport_rect(self, *args):
@@ -214,46 +219,38 @@ def _get_rect(self, *args):
214219
self.viewport.rect = None
215220
return
216221

217-
i, j = self.parent.position
218-
w, h = self.parent.renderer.logical_size
222+
row_ix_parent, col_ix_parent = self.parent.position
223+
width_canvas, height_canvas = self.parent.renderer.logical_size
219224

220225
spacing = 2 # spacing in pixels
221226

222227
if self.position == "right":
223-
r = [
224-
(w / self.parent.ncols) + ((j - 1) * (w / self.parent.ncols)) + (w / self.parent.ncols) - self.size,
225-
((h / self.parent.nrows) + ((i - 1) * (h / self.parent.nrows))) + spacing,
226-
self.size,
227-
(h / self.parent.nrows) - spacing
228-
]
228+
x_pos = (width_canvas / self.parent.ncols) + ((col_ix_parent - 1) * (width_canvas / self.parent.ncols)) + (width_canvas / self.parent.ncols) - self.size
229+
y_pos = ((height_canvas / self.parent.nrows) + ((row_ix_parent - 1) * (height_canvas / self.parent.nrows))) + spacing
230+
width_viewport = self.size
231+
height_viewport = (height_canvas / self.parent.nrows) - spacing
229232

230233
elif self.position == "left":
231-
r = [
232-
(w / self.parent.ncols) + ((j - 1) * (w / self.parent.ncols)),
233-
((h / self.parent.nrows) + ((i - 1) * (h / self.parent.nrows))) + spacing,
234-
self.size,
235-
(h / self.parent.nrows) - spacing
236-
]
234+
x_pos = (width_canvas / self.parent.ncols) + ((col_ix_parent - 1) * (width_canvas / self.parent.ncols))
235+
y_pos = ((height_canvas / self.parent.nrows) + ((row_ix_parent - 1) * (height_canvas / self.parent.nrows))) + spacing
236+
width_viewport = self.size
237+
height_viewport = (height_canvas / self.parent.nrows) - spacing
237238

238239
elif self.position == "top":
239-
r = [
240-
(w / self.parent.ncols) + ((j - 1) * (w / self.parent.ncols)) + spacing,
241-
((h / self.parent.nrows) + ((i - 1) * (h / self.parent.nrows))) + spacing,
242-
(w / self.parent.ncols) - spacing,
243-
self.size
244-
]
240+
x_pos = (width_canvas / self.parent.ncols) + ((col_ix_parent - 1) * (width_canvas / self.parent.ncols)) + spacing
241+
y_pos = ((height_canvas / self.parent.nrows) + ((row_ix_parent - 1) * (height_canvas / self.parent.nrows))) + spacing
242+
width_viewport = (width_canvas / self.parent.ncols) - spacing
243+
height_viewport = self.size
245244

246245
elif self.position == "bottom":
247-
r = [
248-
(w / self.parent.ncols) + ((j - 1) * (w / self.parent.ncols)) + spacing,
249-
((h / self.parent.nrows) + ((i - 1) * (h / self.parent.nrows))) + (h / self.parent.nrows) - self.size,
250-
(w / self.parent.ncols) - spacing,
251-
self.size
252-
]
246+
x_pos = (width_canvas / self.parent.ncols) + ((col_ix_parent - 1) * (width_canvas / self.parent.ncols)) + spacing
247+
y_pos = ((height_canvas / self.parent.nrows) + ((row_ix_parent - 1) * (height_canvas / self.parent.nrows))) + (height_canvas / self.parent.nrows) - self.size
248+
width_viewport = (width_canvas / self.parent.ncols) - spacing
249+
height_viewport = self.size
253250
else:
254251
raise ValueError("invalid position")
255252

256-
return r
253+
return [x_pos, y_pos, width_viewport, height_viewport]
257254

258255
def set_viewport_rect(self, *args):
259256
rect = self._get_rect()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.