8000 set_position on Annotation is not working · Issue #2329 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content
set_position on Annotation is not working #2329
Closed
@alefnula

Description

@alefnula

annotation.set_position(...) is not working in versions 1.2.1, 1.3.0 nor on the master.

Here is an example that demonstrates this.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

# Create initial data
data = np.array([[1,2,3,4,5], [7,4,9,2,3]])

# Create figure and axes
fig = plt.figure()
ax = plt.axes(xlim=(0, 20), ylim=(0, 20))

# Create initial objects
line, = ax.plot([], [], 'r-')
annotation = ax.annotate('A0', xy=(data[0][0], data[1][0]))
annotation.set_animated(True)

def init():
    return line, annotation

def update(num):
    newData = np.array([[1 + num, 2 + num / 2, 3, 4 - num / 4, 5 + num],
                        [7, 4, 9 + num / 3, 2, 3]])
    line.set_data(newData)
    # This is not working but in docs it is described as a setter
    # annotation.set_position((newData[0][0], newData[1][0]))
    # This works but this is described in docs as getter
    annotation.xytext = (newData[0][0], newData[1][0])
    return line, annotation

anim = animation.FuncAnimation(fig, update, frames=25, init_func=init,
                               interval=200, blit=True)
plt.show()

SO Question where the bug was discovered: Animate points with labels with mathplotlib

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0