CanSat-India-Updated / GUI / cansat india 3 / tt.py
tt.py
Raw
import random
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

# Generate a plot displaying two elements:
# One: Display 6 side die roll results
# Two: Plot the order of rolls

numRolls = 300

rollTotals = [0, 0, 0, 0, 0, 0]
rollSeq = []

# Create a figure with two subplots
fig = plt.figure()
ax1 = fig.add_subplot(3,2,1)
ax2 = fig.add_subplot(3,2,2)
ax3 = fig.add_subplot(3,2,3)
ax4 = fig.add_subplot(3,2,4)
ax5 = fig.add_subplot(3,2,5)
ax6 = fig.add_subplot(3,2,6)

# Adjust spacing between plots
plt.subplots_adjust(top = 0.93, bottom = 0.07, hspace = 0.3)

#define the function for use in matplotlib.animation.funcAnimation
def animate(i):

    currentRoll = random.randint(1, 6)
    rollTotals[currentRoll - 1] += 1
    rollSeq.append(currentRoll)

    # Set subplot data
    ax1.clear()
    ax1.bar([1, 2, 3, 4, 5, 6], rollTotals, 1/1.5)

    ax2.clear()
    ax2.plot(rollSeq)
    xlim = len(rollSeq)
    ax2.set_xlim(xlim - 30, xlim)

    # Set subplot titles
    ax1.set_title("Roll Totals")
    ax2.set_title("Roll Sequence")


ani = animation.FuncAnimation(fig, animate, frames=numRolls, interval=50, repeat=False)

# Set up formatting for the movie files
# Writer = animation.writers['ffmpeg']
# writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

# # Save ani
# ani.save(r'D:\Projects\cansat india 2\animation.mp4', writer=writer)

plt.show()