y-метки, x-метки и субтитры не будут отображаться в анимации рисунка

#python #matplotlib #animation #title #subplot

#python #matplotlib #Анимация #Название #подзаголовок

Вопрос:

Кто-нибудь знает, почему y-метки, x-метки и субтитры не будут отображаться при анимации фигуры? Это работает, когда я использовал анимацию.TimedAnimation.инициализация, но не тогда, когда я переписал код в анимации.Анимация функции. Изображения, когда я запускаю программу с обеими функциями: С анимацией.Анимация
с анимацией.TimedAnimation.init

Код ниже:

 from forest import Forest
from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
from matplotlib.lines import Line2D


# Define parameters
p = 0.01
f = 0.4
lattice_size = 100
iterations = 100

forest = Forest(lattice_size, p, f)

def animation_function(i):
    # Update forest state
    if i % 2 == 1:
        forest.next_time_step_part_1()
    else:
        forest.next_time_step_part_2()

    # Get lattice information
    lattice = forest.lattice
    tree_positions_x = []
    tree_positions_y = []
    fire_positions_x  = []
    fire_positions_y = []

    for x in range(lattice_size):
        for y in range(lattice_size):
            value = lattice[x,y]
            if value == 1:
                tree_positions_x.append(x)
                tree_positions_y.append(y)
            elif value == 2:
                fire_positions_x.append(x)
                fire_positions_y.append(y)

    # Update scatterplott
    scatter_trees.set_offsets(np.c_[tree_positions_x, tree_positions_y])
    scatter_trees.set_sizes(
        np.random.randint(6, 12, len(tree_positions_x)))
    scatter_fires.set_offsets(np.c_[fire_positions_x, fire_positions_y])
    ax1.set_title('Total nr lightnings: {} | Total nr fires: {}'.format(
        forest.nr_lightnings, forest.nr_fires))

    # Update graph
    if i % 2 == 1:
        # Get iteration nr
        last_iteration = forest.iteration[-1]
        current_iteration = last_iteration   1
        forest.iteration.append(current_iteration)

         # Get nr of trees
        current_nr_trees = forest.nr_trees
        forest.nr_trees_collection.append(current_nr_trees)
        if forest.max_nr_trees < current_nr_trees:
            forest.max_nr_trees = current_nr_trees

        # Update tree plot
        tree_line.set_data(
            forest.iteration, forest.nr_trees_collection)
        ax2.set_title('Iteration: {} | Total nr trees: | {}'.format(
            current_iteration, current_nr_trees))

        # Update graph
        padding1 = 0.1*current_iteration
        padding2 = 0.1*forest.max_nr_trees
        ax2.set_xlim(0, current_iteration padding1)
        ax2.set_ylim(0, forest.max_nr_trees padding2)

    return ax1, ax2
    

# Setup figure
fig = plt.figure(figsize=(14, 6))
fig.suptitle("{}x{} Forest | Probability of tree growth: {}% | Probability of lightning: {}%".format(
    lattice_size, lattice_size, p*100, f*100))

# Add axes
ax1 = fig.add_subplot(1, 2, 1)
ax2 = fig.add_subplot(1, 2, 2)

# Setup ax1
ax1.set_xlim(-1, lattice_size)
ax1.set_ylim(-1, lattice_size)
#ax1.set_aspect('equal', adjustable='box')
ax1.set_facecolor("#543327")
ax1.set_xlabel('x')
ax1.set_ylabel('y')

scatter_trees = ax1.scatter([], [],  facecolors="g", marker='^')
scatter_fires = ax1.scatter(
    [], [], facecolors="r", marker='^', s=1)

# Setup ax2
ax2.set_xlabel('t')
ax2.set_ylabel('Nr of trees')
ax2.set_xlim(0, 1)
ax2.set_ylim(0, 1)

tree_line = Line2D([], [], color='green')
ax2.add_line(tree_line)


anim = animation.FuncAnimation(fig, animation_function,
                                frames=iterations, interval=20, blit=True)


plt.show()
    
  

Комментарии:

1. У меня те же проблемы. Вы когда-нибудь решали эту проблему?

2. Нет, извините, я не решил это…