-
-
Notifications
You must be signed in to change notification settings - Fork 529
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
154 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# | ||
# Method for creating a dynamic plot | ||
# | ||
import pybamm | ||
|
||
|
||
def dynamic_plot(*args, **kwargs): | ||
""" | ||
Creates a :class:`pybamm.QuickPlot` object (with arguments 'args' and keyword | ||
arguments 'kwargs') and then calls :meth:`pybamm.QuickPlot.dynamic_plot`. | ||
The key-word argument 'testing' is passed to the 'dynamic_plot' method, not the | ||
`QuickPlot' class. | ||
Returns | ||
------- | ||
plot : :class:`pybamm.QuickPlot` | ||
The 'QuickPlot' object that was created | ||
""" | ||
kwargs_for_class = {k: v for k, v in kwargs.items() if k != "testing"} | ||
plot = pybamm.QuickPlot(*args, **kwargs_for_class) | ||
plot.dynamic_plot(kwargs.get("testing", False)) | ||
return plot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# | ||
# Method for creating a 1D plot of pybamm arrays | ||
# | ||
import pybamm | ||
from .quick_plot import ax_min, ax_max | ||
|
||
|
||
def plot(x, y, xlabel=None, ylabel=None, title=None, testing=False, **kwargs): | ||
""" | ||
Generate a simple 1D plot. Calls `matplotlib.pyplot.plot` with keyword | ||
arguments 'kwargs'. For a list of 'kwargs' see the | ||
`matplotlib plot documentation <https://tinyurl.com/ycblw9bx>`_ | ||
Parameters | ||
---------- | ||
x : :class:`pybamm.Array` | ||
The array to plot on the x axis | ||
y : :class:`pybamm.Array` | ||
The array to plot on the y axis | ||
xlabel : str, optional | ||
The label for the x axis | ||
ylabel : str, optional | ||
The label for the y axis | ||
testing : bool, optional | ||
Whether to actually make the plot (turned off for unit tests) | ||
""" | ||
import matplotlib.pyplot as plt | ||
|
||
if not isinstance(x, pybamm.Array): | ||
raise TypeError("x must be 'pybamm.Array'") | ||
if not isinstance(y, pybamm.Array): | ||
raise TypeError("y must be 'pybamm.Array'") | ||
|
||
plt.plot(x.entries, y.entries, **kwargs) | ||
plt.ylim([ax_min(y.entries), ax_max(y.entries)]) | ||
plt.xlabel(xlabel) | ||
plt.ylabel(ylabel) | ||
plt.title(title) | ||
|
||
if not testing: # pragma: no cover | ||
plt.show() | ||
|
||
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# | ||
# Method for creating a filled contour plot of pybamm arrays | ||
# | ||
import pybamm | ||
from .quick_plot import ax_min, ax_max | ||
|
||
|
||
def plot2D(x, y, z, xlabel=None, ylabel=None, title=None, testing=False, **kwargs): | ||
""" | ||
Generate a simple 2D plot. Calls `matplotlib.pyplot.contourf` with keyword | ||
arguments 'kwargs'. For a list of 'kwargs' see the | ||
`matplotlib contourf documentation <https://tinyurl.com/y8mnadtn>`_ | ||
Parameters | ||
---------- | ||
x : :class:`pybamm.Array` | ||
The array to plot on the x axis. Can be of shape (M, N) or (N, 1) | ||
y : :class:`pybamm.Array` | ||
The array to plot on the y axis. Can be of shape (M, N) or (M, 1) | ||
z : :class:`pybamm.Array` | ||
The array to plot on the z axis. Is of shape (M, N) | ||
xlabel : str, optional | ||
The label for the x axis | ||
ylabel : str, optional | ||
The label for the y axis | ||
title : str, optional | ||
The title for the plot | ||
testing : bool, optional | ||
Whether to actually make the plot (turned off for unit tests) | ||
""" | ||
import matplotlib.pyplot as plt | ||
|
||
if not isinstance(x, pybamm.Array): | ||
raise TypeError("x must be 'pybamm.Array'") | ||
if not isinstance(y, pybamm.Array): | ||
raise TypeError("y must be 'pybamm.Array'") | ||
if not isinstance(z, pybamm.Array): | ||
raise TypeError("z must be 'pybamm.Array'") | ||
|
||
# Get correct entries of x and y depending on shape | ||
if x.shape == y.shape == z.shape: | ||
x_entries = x.entries | ||
y_entries = y.entries | ||
else: | ||
x_entries = x.entries[:, 0] | ||
y_entries = y.entries[:, 0] | ||
|
||
plt.contourf( | ||
x_entries, | ||
y_entries, | ||
z.entries, | ||
vmin=ax_min(z.entries), | ||
vmax=ax_max(z.entries), | ||
cmap="coolwarm", | ||
**kwargs | ||
) | ||
plt.xlabel(xlabel) | ||
plt.ylabel(ylabel) | ||
plt.title(title) | ||
plt.colorbar() | ||
|
||
if not testing: # pragma: no cover | ||
plt.show() | ||
|
||
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters