Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

add_callback fails on axis

Ouverte
#500 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
40/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
julia, python

Piste de recherche

Commencez par reproduire l’exemple Julia avec PyPlot et le point d’entrée ax.xaxis.add_callback, puis comparez son comportement avec celui de l’exemple Python matplotlib pour les versions de Julia signalées. C’est terminé lorsque le callback est appelé quand le réglage du zoom de l’axe change, comme le montre le fait que le called log est renseigné.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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".

Langage dominant
Julia
Étoiles
489
Forks
90
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de JuliaPy/PyPlot.jl

Toutes les issues de JuliaPy/PyPlot.jl

Issues similaires

Plus d'issues Julia

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.