Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

add_callback fails on axis

Aperta
#500 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
40/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
julia, python

Direzione di ricerca

Inizia riproducendo l'esempio Julia con PyPlot e l'entry point ax.xaxis.add_callback, quindi confronta il suo comportamento con quello dell'esempio Python matplotlib nelle versioni di Julia riportate. Il lavoro è completato quando il callback viene invocato al variare dell'impostazione dello zoom dell'asse, come dimostra il fatto che il called log viene popolato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I'm trying to set up a callback that runs every time the user changes the zoom setting on an axis. Here's a demo in Python:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot(np.random.rand(5))
[<matplotlib.lines.Line2D object at 0x7fb3c34266d8>]
>>> def callback(artist):
...     print('callback')
... 
>>> ax.xaxis.add_callback(callback)
0
>>> plt.show()
callback
callback

and then if I click on the magnifying glass and zoom in, I get another callback exactly as expected.

However, here I get nothing:

julia> using PyPlot

julia> PyPlot.version
v"3.3.1"

julia> fig, ax = plt.subplots()
(Figure(PyObject <Figure size 640x480 with 1 Axes>), PyObject <AxesSubplot:>)

julia> ax.plot(rand(5))
1-element Vector{PyCall.PyObject}:
 PyObject <matplotlib.lines.Line2D object at 0x7f5d58079df0>

julia> called = []   # in case there are any task-switching concerns...
Any[]

julia> pushtime(args...) = push!(called, time())  # just log that we got called
pushtime (generic function with 1 method)

julia> ax.xaxis.add_callback(pushtime)
0

and called never gets populated no matter what I do.

Any suggestions? EDIT: true for both Julia 1.5.2 and Julia v"1.6.0-DEV.1187".

Lingua principale
Julia
Stelle
489
Fork
90
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaPy/PyPlot.jl

Tutte le issue di JuliaPy/PyPlot.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.