Skip to content

Interactive plots stay small when process busy on HiDPI displays #10456

@ahoereth

Description

@ahoereth

Bug report

Bug summary

When using %matplotlib notebook in Jupyter Notebooks on a HiDPI screen (tested on multiple MacBooks of different generations), the plot stays half-sized until the cell is finished with all its computations.

Code for reproduction

%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
import time

def draw(ax):
    """Scatter some new data into an axis."""
    ax.cla()
    ax.scatter(*np.random.rand(2, 1000))
    ax.get_figure().canvas.draw()

_, ax = plt.subplots(1, 1)

for _ in range(10):
    # Draw some new data
    draw(ax)
    # Do some intermediate computations
    time.sleep(.1)

# Plot wont upscale till this sleep is over
time.sleep(10)

Actual outcome

Plots stay small until last sleep finishes.

Expected outcome

Plots should rescale to screen's DPI right after initial drawing.

Matplotlib version

  • Operating system: Ubuntu 16.04 / macOS 10.13
  • Matplotlib version: 2.1.2
  • Matplotlib backend: nbAgg
  • Python version: 3.6.4
  • Jupyter version: 4.4.0

Other Information

#5383 is probably relevant for when attempting to fix this problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions