JuliaPy / JuliaPy/PyPlot.jl

add_callback fails on axis

Ouverte
#500 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Julia
Étoiles
488
Forks
90
Métriques de merge des PR
Aucune PR mergée en 30 j

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:
```python
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot(np.random.rand(5))
[]
>>> 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
julia> using PyPlot

julia> PyPlot.version
v"3.3.1"

julia> fig, ax = plt.subplots()
(Figure(PyObject ), PyObject )

julia> ax.plot(rand(5))
1-element Vector{PyCall.PyObject}:
PyObject

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Start by reproducing the Julia example with PyPlot and the ax.xaxis.add_callback entry point, then compare its behavior with the Python matplotlib example across the reported Julia versions. Done means the callback is invoked when the axis zoom setting changes, as shown by the called log being populated.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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