forked from naezzell/topological-spin-transport
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplotting_arrows.jl
136 lines (127 loc) · 3.93 KB
/
plotting_arrows.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
##
using Plots
using Statistics
##
##
δ = 1e-6;
x = [0.0, 3.0, 6.0]
y = zeros(3)
a = Animation()
#ymin = minimum(fvals);
#ymax = maximum(fvals);
ymin = -101;
ymax = 101;
for i=1:1:length(times)
s = spins[i]
u = real.(s)
u[abs.(u) .< δ] .= zero(eltype(u))
v = imag.(s)
v[abs.(v) .< δ] .= zero(eltype(v))
uavg = [mean(u)]
vavg = [mean(v)]
running_t = times[1:i]
running_f = fvals[1:i]
l = @layout [a b ; c d e]
p1 = plot(running_t, running_f, xlims=(0, times[end]), ylims=(ymin, ymax),
label=false, title="Z₁ driving amplitude",
xlabel="t", ylabel="h₁(t)")
p2 = quiver([0], [0], quiver=(uavg, vavg), xlims=(-2, 2), ylims=(-2, 2),
title="(ψ₁+ψ₂+ψ₃) / 3", c=:orange, xlabel="Re",
ylabel="Im")
p3 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₁",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p3 = quiver!([x[1]], [y[1]], quiver=([u[1]],[v[1]]));
"""
p4 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₂",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p4 = quiver!([x[1]], [y[1]], quiver=([u[2]],[v[2]]));
p5 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₃",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p5 = quiver!([x[1]], [y[1]], quiver=([u[3]],[v[3]]));
plt = plot(p1, p2, p3, p4, p5, layout = l)
"""
plt = plot(p1, p2, p3)
frame(a, plt)
end
gif(a)
##
##
l = @layout [
a{0.3w} [grid(3,3)
b{0.2h} ]
]
plot(
rand(10, 11),
layout = l, legend = false, seriestype = [:bar :scatter :path],
title = ["($i)" for j in 1:1, i in 1:11], titleloc = :right, titlefont = font(8)
)
##
##
i = 25
s = spins[i]
u = real.(s)
u[abs.(u) .< δ] .= zero(eltype(u))
v = imag.(s)
v[abs.(v) .< δ] .= zero(eltype(v))
xavg = [7.5]
yavg = [2]
uavg = [mean(u)]
vavg = [mean(v)]
running_t = times[1:i]
running_f = fvals[1:i]
scatter(x, y, xlims=(-3, 9), ylims=(-2, 4), legend=false)
quiver!(x, y, quiver=(u,v));
quiver!(xavg, yavg, quiver=(uavg, vavg))
plt = plot!(running_t, running_f, inset = (1, bbox(0.05, 0.05, 0.5, 0.25, (0, 1))), subplot=2,
xlims=(0, times[end]), ylims=(ymin, ymax),
legend=false, xlabel="time", ylabel="h₁(t)")
##
##
l = @layout [a b ; c d e]
p1 = plot(running_t, running_f, xlims=(0, times[end]), ylims=(ymin, ymax),
label=false, title="Z₁ driving amplitude",
xlabel="t", ylabel="h₁(t)")
p2 = quiver([0], [0], quiver=(uavg, vavg), xlims=(-2, 2), ylims=(-2, 2),
title="(ψ₁+ψ₂+ψ₃) / 3", c=:orange, xlabel="Re",
ylabel="Im")
p3 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₁",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p3 = quiver!([x[1]], [y[1]], quiver=([u[1]],[v[1]]));
p4 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₂",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p4 = quiver!([x[1]], [y[1]], quiver=([u[2]],[v[2]]));
p5 = scatter([x[1]], [y[1]], xlims=(-2, 2), ylims=(-2, 2),
legend=false, title="ψ₃",
markersize=0, markershape=:utriangle,
xlabel="Re", ylabel="Im")
p5 = quiver!([x[1]], [y[1]], quiver=([u[3]],[v[3]]));
plot(p1, p2, p3, p4, p5, layout = l)
##
##
##
x = real.(spins)
y = real.(spins)
GR.setarrowsize(1)
plot(x,y, marker =:circle, arrow=(:closed, 2.0))
##
##
x = [0.0, 3.0, 6.0]
y = zeros(3)
u = real.(spins)
u[abs.(u) .< δ] .= zero(eltype(u))
v = imag.(spins)
v[abs.(v) .< δ] .= zero(eltype(v))
scatter(x,y, xlims=(-3, 9), ylims=(-2, 2), legend=false)
quiver!(x,y,quiver=(u,v))
##
##