cat[\[Alpha]_, \[Theta]_, q_, p_] :=
1/(2 Pi)*1/(1 + Cos[\[Theta]]*Exp[-2 \[Alpha]^2])*(
Exp[-p^2 - (q + Sqrt[2] \[Alpha])^2] +
Exp[-p^2 - (q - Sqrt[2] \[Alpha])^2] +
2 Cos[\[Theta] - 2 Sqrt[2] \[Alpha]*p]*Exp[-q^2 - p^2]);
rq = 6; rp = 3; t = 0.003; FontS = 20;
For[\[Theta] = 0, \[Theta] <= Pi, \[Theta] += Pi,
For[\[Alpha] = 1/2, \[Alpha] < 3, \[Alpha] += 1/2,
plot = Show[Plot3D[cat[\[Alpha], \[Theta], q, p],
{q, -rq, rq}, {p, -rp, rp}, ImageSize -> 800,
Mesh -> {Range[-Floor[rq], Floor[rq] ],
Range[-Floor[rp], Floor[rp] ], Range[-1, 1, 1/4]/Pi},
MeshFunctions -> {#1 &, #2 &, #3 &},
MeshStyle -> {Directive[Black, Thickness[t] ],
Directive[Black, Thickness[t] ],
Directive[White, Thickness[t] ]},
PlotRange -> {-1/Pi, 1/Pi}, PlotPoints -> 81, MaxRecursion -> 4,
Method -> {Refinement -> {ControlValue -> 0.02} },
PlotStyle -> Opacity[0.85], Lighting -> "Classic",
ColorFunction -> ({RGBColor[1, 1, 0.75], Glow[GrayLevel[0.06] ],
Specularity[0.5, 60]} &),
Axes -> False, Boxed -> False,
ViewPoint ->
FromSphericalCoordinates[{Sqrt[229/20], Pi/3, -0.64 Pi}] ],
Graphics3D[{Thickness -> t, Black,
Line[{ {-rq, rp, 0}, {-rq, -rp, 0}, {rq, -rp, 0} }]}],
Graphics3D[{Thickness -> t, Black,
Line[{ {-rq, rp, -1/Pi}, {-rq, rp, 1/Pi} }]}],
(* q ticks *)
Sequence @@
Table[Graphics3D[{Thickness -> t, Black,
Line[{ {x, -rp, 0}, {x, -0.2 - rp, 0} }]}], {x, -Floor[rq],
Floor[rq]}],
(* p ticks *)
Sequence @@
Table[Graphics3D[{Thickness -> t, Black,
Line[{ {-rq, y, 0}, {-rq - 0.2, y, 0} }]}], {y, -Floor[rp],
Floor[rp]}],
(*W ticks *)
Sequence @@
Table[Graphics3D[{Thickness -> t, Black,
Line[{ {-rq, rp, z/(2 Pi)}, {-rq - 0.2, rp,
z/(2 Pi)} }]}], {z, -2, 2}],
(* axes labels *)
Graphics3D[Text[Style["q", FontS, Black], {0, -rp*1.11, -0.07}] ],
Graphics3D[Text[Style["p", FontS, Black], {-rq*1.11, 0, -0.07}] ],
Graphics3D[
Text[Style["W", FontS, Black], {-rq*0.93, rp*0.93, 0.8/Pi}] ],
Sequence @@
Table[Graphics3D[{Text[
Style[TextString[x], FontS,
Black], {x, -rp - 0.07 Max[rq, rp], -0.003}, {0,
1}]}], {x, -Floor[rq], Floor[rq]}],
Sequence @@
Table[Graphics3D[{Text[
Style[TextString[y], FontS, Black], {-rq - 0.07 Max[rq, rp],
y, -0.003}, {0, 1}]}], {y, -Floor[rp], Floor[rp]}],
Sequence @@
Table[Graphics3D[{Text[
Style[If[z == 0, "0", ToString[z/(2 Pi), TraditionalForm] ],
FontS, Black], {-rq - 0.3, rp, z/2/Pi}, {1, 0}]}], {z, -2,
2}],
BoxRatios -> {Automatic, Automatic, 8}, PlotRange -> All
];
trim = { {0., .26}, {.97, .86} };
imgname =
"Wignerfunction_catstate_" <> If[\[Theta] == 0, "even_", "odd_"] <>
TextString[\[Alpha]] <> ".png";
Export[imgname,
ImageResize[
ImageTrim[Image[plot, ImageResolution -> 400], trim,
DataRange -> { {0, 1}, {0, 1} }], 2000, Resampling -> "Linear"] ];
] ]