matplotlib / matplotlib/ipympl

figures that start in background tabs are cut off at bottom

Open
#158 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
1.7k
Forks
234
PR merge metrics
No merged PRs in 30d

Description

I'm having some trouble with figures getting cut off at the bottom when they're included in tabs other than the first tab. Here's a minimal example. Note that I put the figures in boxes because I have the same problem as #126 if I don't.

%matplotlib widget
import matplotlib.pyplot as plt
plt.ioff()
import ipywidgets as widgets
import numpy as np
fig1,ax1 = plt.subplots()
ax1.scatter(np.arange(10),np.random.random(10))
ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
fig2,ax2 = plt.subplots()
ax2.plot(np.arange(10),np.random.random(10))
ax2.set_xlabel('x axis')
ax2.set_ylabel('y axis')
tabs = widgets.Tab(children=[widgets.Box([fig1.canvas]),widgets.Box([fig2.canvas])])
tabs.set_title(0, 'fig1')
tabs.set_title(1, 'fig2')
tabs

The first tab looks like (I clicked on the figure to show the boundaries)
Screen Shot 2019-12-31 at 3 29 47 PM
and the second tab looks like:
Screen Shot 2019-12-31 at 3 31 00 PM
I just cannot figure out why the bottom of that second figure is getting cut off.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the minimal notebook example with two ipywidgets tabs and matplotlib figures, then compare the sizing of the initially hidden second figure with the first. Trace how figure dimensions are established when the second tab becomes visible. Done means figures in every tab display their complete plotting area without being cut off.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter, jupyter-notebook, python
Domain
data-visualization, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.