def get_diagram_one(ax, fermion_style, boson_style, vertex_style): D = Diagram(ax) w = 0.75 xy0 = [0.5 - w / 2, 0.25] v1 = D.vertex(xy0, **vertex_style) v2 = D.vertex(v1.xy, dx=w, **vertex_style) G = D.line(v1, v2, **fermion_style) B = D.line(v1, v2, **boson_style) # In case the axes get smaller (you have more diagrams), you might want to change the scale D.scale(1.0) D.plot() return D
import matplotlib from feynman import Diagram fig = matplotlib.pyplot.figure(figsize=(1., 1.)) ax = fig.add_axes([0, 0, 10, 10], frameon=False) diagram = Diagram(ax) in1 = diagram.verticle(xy=(.1, .5)) in2 = diagram.verticle(xy=(.4, .5)) v1 = diagram.verticle(xy=(.65, .65)) v2 = diagram.verticle(xy=(.65, .35)) out1 = diagram.verticle(xy=(.9, .65), marker='') out2 = diagram.verticle(xy=(.9, .35), marker='') higgs = diagram.line(in1, in2, arrow=False, style='dashed') nu1 = diagram.line(v1, in2) nu2 = diagram.line(in2, v2) w = diagram.line(v1, v2, style='wiggly') lep = diagram.line(out1, v1) tau = diagram.line(v2, out2) nu1.text(r"$\nu_\ell$", fontsize=40) nu2.text(r"$\nu_\tau$", fontsize=40) lep.text(r"$\ell^+$", fontsize=40) tau.text(r"$\tau^-$", fontsize=40) #w.text(r"W$^\pm$",fontsize=40) diagram.text(0.72, 0.5, "$W^\pm$", fontsize=40) #diagram.text(0.69,0.35,"$Z/W^\pm$",fontsize=30) higgs.text("H", fontsize=40)
fig = plt.figure(figsize=(8, 2)) ax = fig.add_subplot(111, frameon=False) ax.set_xlim(0, 2) ax.set_ylim(0, .5) y0 = 0.175 opwidth = 0.3 linlen = 0.8 W_style = dict(style='double wiggly elliptic', nwiggles=5) G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05}) D = Diagram(ax) xy = [0.2, y0] v01 = D.verticle(xy) xy[0] += opwidth v02 = D.verticle(xy) Sigma = D.operator([v01, v02]) Sigma.text("$\Sigma$") D.text(.70, y0, "=", fontsize=30) xy[1] = y0 - 0.07 xy[0] = 0.9
"""Create the Fock interaction diagram.""" import matplotlib.pyplot as plt from feynman import Diagram diagram = Diagram() v1 = diagram.verticle(xy=(.1, .5), marker='') v2 = diagram.verticle(xy=(.3, .5)) v3 = diagram.verticle(xy=(.7, .5)) v4 = diagram.verticle(xy=(.9, .5), marker='') l12 = diagram.line(v1, v2, arrow=True) w23 = diagram.line(v2, v3, style='elliptic wiggly') l23 = diagram.line(v2, v3, arrow=True) l34 = diagram.line(v3, v4, arrow=True) l12.text("p") w23.text("q") l23.text("p-q") l34.text("p") diagram.plot() plt.savefig('pdf/fock.pdf') diagram.show()
""" Polarization ============ A diagram containing different operators. """ from __future__ import print_function, division import numpy as np import matplotlib.pyplot as plt from feynman import Diagram # Set up the dimensions of the figure and the objects d = Diagram(figsize=(8, 3)) d.ax.set_xlim(0, 8 / 3) d.ax.set_ylim(0, 1) textpad = 0.25 opwidth = 0.4 linlen = 1.1 Gamma_side = .4 Gamma_height = Gamma_side * np.sqrt(3) / 2 # Positon of the first vertex x0 = 0.2 y0 = sum(d.ax.get_ylim()) / 2 # Define line styles G_style = dict( style='double elliptic', ellipse_excentricity=-1.2, ellipse_spread=.3,
fig = plt.figure(figsize=(12, 3)) ax = fig.add_subplot(111, frameon=False) ax.set_xlim(0, 3) ax.set_ylim(0, .75) y0 = .75 / 2 opwidth = 0.3 linlen = 0.4 W_style = dict(style='double wiggly', nwiggles=2) v_style = dict(style='simple wiggly', nwiggles=2) # First diagram D1 = Diagram(ax) xy = [0.2, y0] v01 = D1.verticle(xy) xy[0] += linlen v02 = D1.verticle(v01.xy, dx=linlen) W = D1.line(v01, v02, **W_style) text_prop = dict(y=0.06, fontsize=22) W.text("$W$", **text_prop) D1.text(.75, y0, "=", fontsize=30)
""" Common neutrino nucleon interactions """ import matplotlib.pyplot as plt from feynman import Diagram fig = plt.figure(figsize=(10, 5)) ax1 = fig.add_subplot(121, frameon=False) diagram = Diagram(ax1) diagram.text(.5, 0.9, "Charged-Current", fontsize=25) in1 = diagram.vertex(xy=(0.05, 0.75), marker='') in2 = diagram.vertex(xy=(0.05, 0.25), marker='') v1 = diagram.vertex(xy=(.45, .6)) v2 = diagram.vertex(xy=(.45, .4)) out1 = diagram.vertex(xy=(0.85, 0.75), marker='') out2 = diagram.vertex(xy=(0.85, 0.25), marker='') nu1 = diagram.line(in1, v1) #incoming neutrino N = diagram.line(in2, v2) #incoming neucleon W = diagram.line(v1, v2, style='wiggly') #W mediator nu2 = diagram.line(v1, out1) #outgoing neutrino X = diagram.line(v2, out2) #outgoing shower diagram.text(0.10, 0.68, "$\\nu_{\ell}$", fontsize=30) diagram.text(0.10, 0.32, "$N$", fontsize=30) diagram.text(0.57, 0.5, "$W^{\pm}$", fontsize=30) diagram.text(0.81, 0.68, "$\ell$", fontsize=30) diagram.text(0.81, 0.32, "$X$", fontsize=30) ax2 = fig.add_subplot(122, frameon=False) diagram2 = Diagram(ax2) diagram2.text(.5, 0.9, "Neutral-Current", fontsize=25)