Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

add_callback fails on axis

Aberta
#500 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
40/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
julia, python

Direção de pesquisa

Comece reproduzindo o exemplo de Julia com PyPlot e o ponto de entrada ax.xaxis.add_callback; em seguida, compare o comportamento dele com o exemplo de Python matplotlib nas versões de Julia reportadas. Está concluído quando o callback é invocado ao alterar a configuração de zoom do eixo, conforme demonstrado pelo preenchimento do called log.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
Julia
Estrelas
489
Forks
90
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de JuliaPy/PyPlot.jl

Todas as issues de JuliaPy/PyPlot.jl

Issues semelhantes

Mais issues de Julia

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.