import matplotlib.pyplot as plt
import discretisedfield as df
mesh = df.Mesh(
p1=(-10e-9, -10e-9, -10e-9),
p2=(15e-9, 10e-9, 5e-9),
cell=(1e-9, 1e-9, 1e-9),
subregions={
"r1": df.Region(p1=(-10e-9, -10e-9, -10e-9), p2=(0, 10e-9, 5e-9)),
"r2": df.Region(p1=(0e-9, -10e-9, -10e-9), p2=(15e-9, 10e-9, 5e-9)),
},
)
def value_fun(point):
x, y, z = point
c = 1e9
if x < -5e-9:
return (0, y * c, z * c)
else:
return (x * c, y * c, z * c)
field = df.Field(mesh, dim=3, value=value_fun, norm=1e6)
field.mesh.region.mpl()
field.mesh.region.mpl(figsize=(5, 5))
field.mesh.region.mpl(figsize=(5, 5), color="#000")
field.mesh.region.mpl(figsize=(5, 5), color="#000", multiplier=1e-6)
field.mesh.region.mpl(
figsize=(5, 5), color="#000", multiplier=1e-6, filename="region.pdf"
)
field.mesh.region.k3d()
Output()
field.mesh.region.k3d(color=0x4F5C6A)
Output()
field.mesh.region.k3d(color=0x4F5C6A, multiplier=1e-6)
Output()
field.mesh.region.k3d(color=0x4F5C6A, multiplier=1e-6, wireframe=True)
Output()
mesh.mpl()
mesh.mpl(color=("C7", "C2"))
mesh.mpl(figsize=(3, 3))
mesh.mpl(multiplier=1e-6)
mesh.mpl(multiplier=1e-6, linewidth=5)
mesh.mpl(multiplier=1e-6, linewidth=2, filename="mesh.pdf")
mesh.mpl(multiplier=1e-6, linewidth=2, linestyle="dashed")
mesh.mpl_subregions()
mesh.mpl_subregions(figsize=(5, 5))
mesh.mpl_subregions(color=("C2", "C9"))
mesh.mpl_subregions(color=("C2", "C9"), multiplier=1e-6)
mesh.mpl_subregions(color=("C2", "C9"), multiplier=1e-6, linewidth=5)
mesh.mpl_subregions(
color=("C2", "C9"), multiplier=1e-6, linewidth=5, filename="subregions.pdf"
)
mesh.k3d()
Output()
mesh.k3d(color=[34568, 78905])
Output()
mesh.k3d(color=[34568, 78905], multiplier=1e-6)
Output()
mesh.k3d(color=[34568, 78905], multiplier=1e-6, wireframe=True)
Output()
mesh.k3d_subregions()
Output()
mesh.k3d_subregions(multiplier=1e-6)
Output()
mesh.k3d_subregions(multiplier=1e-6, color=(250, 250250))
Output()
mesh.k3d_subregions(multiplier=1e-6, color=(250, 250250), wireframe=True)
Output()
mesh.slider("x")
SelectionSlider(description='x (nm)', index=12, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09),…
mesh.slider("y")
SelectionSlider(description='y (nm)', index=10, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09),…
mesh.slider("z")
SelectionSlider(description='z (nm)', index=7, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09), …
mesh.axis_selector()
Dropdown(description='axis', index=2, options=('x', 'y', 'z'), value='z')
mesh.axis_selector(widget="radiobuttons")
RadioButtons(description='axis', index=2, options=('x', 'y', 'z'), value='z')
mesh.axis_selector(widget="radiobuttons", description="A")
RadioButtons(description='A', index=2, options=('x', 'y', 'z'), value='z')
mpl_scalar
¶Not sliced -> error.
# field.mpl_scalar()
Vector field -> error
# field.plane('z').mpl_scalar()
field.x.plane("z").mpl_scalar()
Filter field must be passed
field.x.plane("z").mpl_scalar(filter_field=field.x)
Turn off colorbar
field.x.plane("z").mpl_scalar(filter_field=field.x, colorbar=False)
Colorbar label
field.x.plane("z").mpl_scalar(filter_field=field.x, colorbar_label="something")
Increase figure size to fit colorbar.
field.x.plane("z").mpl_scalar(
figsize=(12, 8), filter_field=field.x, colorbar_label="something"
)
Colormap limits
field.x.plane("z").mpl_scalar(
figsize=(9, 5), filter_field=field.x, colorbar_label="something", clim=(0, 1e6)
)
Change multiplier
field.x.plane("z").mpl_scalar(
figsize=(9, 5), filter_field=field.x, colorbar_label="something", multiplier=1e-12
)
field.x.plane("z").mpl_scalar(
figsize=(9, 5), filter_field=field.x, colorbar_label="something", multiplier=1
)
Saving field
field.x.plane("z").mpl_scalar(filename="scalar.pdf")
Passing imshow argument
field.x.plane("z").mpl_scalar(interpolation="bilinear")
mpl_vector
¶Not sliced -> error
# field.mpl_vector()
field.plane("z").mpl_vector()
Reduce the number of vectors.
field.plane("z", n=(20, 10)).mpl_vector()
Turn off color
field.plane("z", n=(20, 10)).mpl_vector(color=False)
Use different color field (color is still False).
field.plane("z", n=(20, 10)).mpl_vector(color=False, color_field=field.x)
Color is now on by default
field.plane("z", n=(20, 10)).mpl_vector(color_field=field.x, colorbar=True)
Turn off colorbar
field.plane("z", n=(20, 10)).mpl_vector(color_field=field.x, colorbar=False)
Add colorbar label
field.plane("z", n=(20, 10)).mpl_vector(color_field=field.x, colorbar_label="something")
Colormap
field.plane("z", n=(20, 10)).mpl_vector(
color_field=field.x, colorbar_label="something", cmap="plasma"
)
Colormap limit
field.plane("z", n=(20, 10)).mpl_vector(
color_field=field.x, colorbar_label="something", clim=(0, 1e6)
)
Multiplier
field.plane("z", n=(20, 10)).mpl_vector(
color_field=field.x, colorbar_label="something", multiplier=1
)
Figsize
field.plane("z", n=(20, 10)).mpl_vector(figsize=(5, 3))
Saving plot
field.plane("z", n=(20, 10)).mpl_vector(figsize=(5, 3), filename="vector.pdf")
Quiver argument
field.plane("z", n=(20, 10)).mpl_vector(headwidth=8)
Scale
field.curl.plane("z", n=(20, 10)).mpl_vector(scale=5e15)
mpl
¶Not sliced -> error
# field.mpl()
Default behaviour
field.plane("x").mpl()
Changing figsize to fit colorbar
field.plane("x").mpl(figsize=(10, 6))
Change scalar field
field.plane("x").mpl(figsize=(10, 6), scalar_field=field.y)
Turn off colorbar
field.plane("x").mpl(figsize=(10, 6), scalar_field=field.y, scalar_colorbar=False)
Add scalar colorbar label
field.plane("x").mpl(
figsize=(10, 6), scalar_field=field.y, scalar_colorbar_label="something"
)
Add filter field
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
)
Scalar colormap
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
)
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
)
Vector field
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field.div,
vector_scale=3e16,
)
Color vector field (vector_color is False)
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field.div,
vector_color_field=field.y,
vector_scale=3e16,
)
vector_color is now True
field.plane("z").mpl(
figsize=(10, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field.curl,
vector_color_field=field.y,
vector_color=True,
vector_scale=7e15,
)
Add vector colorbar
field.plane("z").mpl(
figsize=(12, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field.div,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_scale=3e16,
)
Label vector colorbar
field.plane("z").mpl(
figsize=(12, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field.div,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_colorbar_label="vector",
vector_scale=3e16,
)
Vector cmap
field.plane("z").mpl(
figsize=(12, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_colorbar_label="vector",
vector_cmap="hsv",
)
Vector clim
field.plane("z").mpl(
figsize=(12, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_colorbar_label="vector",
vector_cmap="hsv",
vector_clim=(0, 1e6),
)
Multiplier
field.plane("z").mpl(
figsize=(12, 6),
scalar_filter_field=field.x,
scalar_field=field.y,
scalar_colorbar_label="something",
scalar_cmap="plasma",
scalar_clim=(0, 1e6),
vector_field=field,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_colorbar_label="vector",
vector_cmap="hsv",
vector_clim=(0, 1e6),
multiplier=1e-12,
)
Save plot
field.plane("x").mpl(
figsize=(12, 6),
scalar_field=field.plane("x").angle,
scalar_colorbar_label="something",
scalar_cmap="twilight",
vector_field=field,
vector_color_field=field.y,
vector_color=True,
vector_colorbar=True,
vector_colorbar_label="vector",
vector_cmap="hsv",
vector_clim=(0, 1e6),
multiplier=1e-12,
filename="mpl.pdf",
)