matplotlib / matplotlib/ipympl

Figure does not show without explicit plt.show()

Đang mở
#609 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Jupyter Notebook
Star
1.7k
Fork
234
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Report

Under some circumstances when using ipympl the figure does not show up in the output area unless plt.show() is explicitly called.

At the moment the reproduction is a bit finicky. As a minimal example these cells, when executed once show a nice empty plot:

%matplotlib widget

from matplotlib import pyplot as plt
import pandas as pd
from io import StringIO
fig, axes = plt.subplots(figsize=(6, 5.5))

s = """1,2,3
1,2,3"""
csv = StringIO(s)
df = pd.read_csv(csv)

# with this it always works:
# plt.show()

When changing the line to read a more complex dataset df = pd.read_csv(file_with_1MB) the empty figure sometimes does not show up anymore. If I add an explicit plt.show() at the end the figure always appears as normal.

It is not directly tied to the larger data file though, even the example above sometimes shows the same behavior after the second cell is re-executed several times. When using %matplotlib inline no issues or errors occur.

I am somewhat certain that this behavior is a regression, as it was not occurring in earlier versions of the Jupyterlab/ipympl ecosystem (with Jupyterlab/ipympl older than approximately six months ago).

Any hints how to debug this a bit better would be appreciated.

Versions

This issues occurs with a recent jupyterlab / ipympl installation (and using Chrome 142.0.7444.60). Here, this is on Windows 11 but the issue also occurs on Linux systems.

 3.13.9 | packaged by conda-forge | (main, Oct 22 2025, 23:12:41) [MSC v.1944 64 bit (AMD64)]
ipympl version: 0.9.8

Selected Jupyter core packages...
IPython          : 9.7.0
ipykernel        : 7.1.0
ipywidgets       : 8.1.8
jupyter_client   : 8.6.3
jupyter_core     : 5.9.1
jupyter_server   : 2.17.0
jupyterlab       : 4.4.10
nbclient         : 0.10.2
nbconvert        : 7.16.6
nbformat         : 5.10.4
notebook         : 7.4.4
qtconsole        : not installed
traitlets        : 5.14.3

C:\tools\miniconda3\Library\envs\jupyter\share\jupyter\labextensions
        jupyter-matplotlib v0.11.8 enabled ok
        jupyterlab_pygments v0.3.0 enabled ok (python, jupyterlab_pygments)
        @jupyter-notebook/lab-extension v7.4.7 enabled ok
        @jupyter-widgets/jupyterlab-manager v5.0.15 enabled ok (python, jupyterlab_widgets)
        @mbektas/notebook-intelligence v1.1.2 enabled ok (python, notebook_intelligence)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện hai ô notebook với %matplotlib widget, thực thi lặp lại và CSV lớn hơn được mô tả trong báo cáo; so sánh với %matplotlib inline. Payload không nêu tên tệp hoặc bài kiểm thử nào trong repository. Được xem là hoàn tất khi hình tương tác xuất hiện một cách ổn định mà không cần gọi plt.show() một cách tường minh.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
jupyter-notebook, pandas, python
Lĩnh vực
frontend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
42/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.