Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Question about performance

オープン
#483 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
20/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
jupyter, python

調査の方向性

まず、ipympl を使って JupyterLab で Looking Glass の例を再現し、そのインタラクションを Qt バックエンドと比較します。報告されている draw_idle の動作と、記載されている JupyterLab、ipympl、widget のバージョンを調査します。具体的なパフォーマンス原因を特定し、インタラクティブなレンダリングにおける測定可能な改善を定義できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Describe the issue

I realise there has already been several issues opened about the performance of ipympl (e.g. #55), compared to other libraries that render in jupyter. But I still don't fully understand why the performance is so much worse than using e.g. the %matplotlib qt backend.

Take for example the 'Looking glass' example from the matplotlib docs.
The ineractivity is very nice in the Qt backend (more than enough for our purposes, even if not quite as snappy as javascript based libs such as bokeh or plotly), but terrible in jupyter lab (laggy and leaving phantom parts of the ellipse around the plot).

Is there really no way to improve the performance of interactivity in ipympl? (I have tried to use fig.canvas.draw_idle() instead of .draw(), and it helps a little but we are still so far behind the Qt backend.

Many thanks.

Versions

 3.9.5 (default, Jun  4 2021, 12:28:51) 
[GCC 7.5.0]
ipympl version: 0.8.2
Selected Jupyter core packages...
IPython          : 7.29.0
ipykernel        : 6.5.0
ipywidgets       : 7.6.5
jupyter_client   : 7.0.6
jupyter_core     : 4.9.1
jupyter_server   : 1.11.2
jupyterlab       : 3.2.3
nbclient         : 0.5.8
nbconvert        : 6.3.0
nbformat         : 5.1.3
notebook         : 6.4.5
qtconsole        : not installed
traitlets        : 5.1.1
Known nbextensions:
  config dir: /home/nvaytet/software/miniconda3/etc/jupyter/nbconfig
    notebook section
      ipycanvas/extension  enabled 
      - Validating: OK
      ipyevents/extension  enabled 
      - Validating: OK
      jupyter-datawidgets/extension  enabled 
      - Validating: OK
      jupyter-matplotlib/extension  enabled 
      - Validating: OK
      jupyter-threejs/extension  enabled 
      - Validating: OK
      jupyter_bokeh/extension  enabled 
      - Validating: OK
      jupyter_dash/main  enabled 
      - Validating: OK
      jupyterlab-plotly/extension  enabled 
      - Validating: OK
      jupyter-js-widgets/extension  enabled 
      - Validating: OK
JupyterLab v3.2.3
/home/nvaytet/software/miniconda3/share/jupyter/labextensions
        ipycanvas v0.12.0 enabled OK
        ipyevents v2.0.1 enabled OK
        jupyter-matplotlib v0.10.2 enabled OK
        jupyterlab-datawidgets v7.0.0 enabled OK
        jupyterlab-plotly v5.4.0 enabled OK
        jupyter-threejs v2.3.0 enabled OK (python, pythreejs)
        @jupyter-widgets/jupyterlab-manager v3.0.1 enabled OK (python, jupyterlab_widgets)
        @bokeh/jupyter_bokeh v3.0.2 enabled OK (python, jupyter_bokeh)

Other labextensions (built into JupyterLab)
   app dir: /home/nvaytet/software/miniconda3/share/jupyter/lab
        jupyterlab-dash v0.4.0 enabled OK


Build recommended, please run `jupyter lab build`:
    jupyterlab-dash needs to be included in build

主要言語
Jupyter Notebook
スター
1.7k
フォーク
234
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

matplotlib/ipympl のほかの issue

matplotlib/ipympl の issue をすべて見る

似ている issue

Web Dev の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。