Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
JYNi16 authored Sep 6, 2022
1 parent 8431c56 commit 3491a88
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions XYmodel_metropolis_python/plot_votex.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import matplotlib.pylab as plt
import matplotlib.animation as animation
import matplotlib.patches as patches
from matplotlib.collections import PatchCollection
import matplotlib.cm as cm
from matplotlib.colors import Normalize
import numpy as np
from xymodel_mc import *

def visualise(sim):
X = np.arange(sim.A.size).reshape(sim.A.shape) % sim.A.shape[0]
Y = (np.arange(sim.A.size).reshape(sim.A.shape) % sim.A.shape[1]).T

U = cos(sim.A)
V = sin(sim.A)

fig, ax = plt.subplots(1, 1, figsize=(15, 15))

rects = []

# create rectangles for vortex/antivortex determination
for i in range(sim.V.shape[0]):
for j in range(sim.V.shape[1]):
rect = patches.Rectangle(xy=(i, j), height=1, width=1)
rects.append(rect)
rects = PatchCollection(rects)

# Set colors for the rectangles
col = 'RdBu'
r_cmap = plt.get_cmap(col)
r_cmap_r = plt.get_cmap(col + "_r") # eto kostil' =)
rects.set_cmap(r_cmap)
rects.set_clim(vmin=-1, vmax=1)

rects.set_animated(True)
rects.set_array(sim.V.flatten('F') / 2)
ax.add_collection(rects)

# create legend
legend_boxes = [patches.Patch(facecolor=r_cmap(0.7), label='Antiortex'),
patches.Patch(facecolor=r_cmap_r(0.7), label='Vortex')]
ax.legend(handles=legend_boxes)

# build an initial quiver plot
q = ax.quiver(X, Y, U, V, pivot='mid', cmap=plt.cm.get_cmap('hsv'), units='inches', scale=4)
fig.colorbar(q, label='Angles (2 pi)')
ax.set_xlim(-1, sim.A.shape[0])
ax.set_ylim(-1, sim.A.shape[1])
q.set_UVC(U, V, C=sim.A)

plt.show()

return q, fig, rects


if __name__=="__main__":
sim = XYMetropolis((40,40),
beta=1,
J=5,
random_state=5,
initial_state='hot')
sim.simulate(1000000)
visualise(sim)

0 comments on commit 3491a88

Please sign in to comment.