JuliaPy / JuliaPy/PyPlot.jl

add_callback fails on axis

Open
#500 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
488
Forks
90
PR merge metrics
No merged PRs in 30d

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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.