plotpp
The libraries main-namespace.
Namespaces
Name |
---|
plotpp::color_map |
Classes
Name | |
---|---|
class | plotpp::Arrows class for plotting arrows/vectors/quivers in plotpp::Figure |
class | plotpp::Boxes class for plotting boxes into a plotpp::Figure |
class | plotpp::Boxplot |
class | plotpp::Circle |
class | plotpp::Color |
class | plotpp::Figure |
class | plotpp::Filledcurves |
class | plotpp::FillStyle |
class | plotpp::Heatmap |
class | plotpp::Impulses |
class | plotpp::IPlot |
class | plotpp::Line Represents a line plot from x- and y-coordiantes. |
class | plotpp::Multiplot |
class | plotpp::Piechart |
struct | plotpp::PlotTitle |
class | plotpp::Points Represents a point plot from x- and y-coordiantes. |
class | plotpp::Steps |
class | plotpp::Text |
class | plotpp::XError |
class | plotpp::XYError |
class | plotpp::YError |
class | plotpp::YErrorLine Represents a YErrorLine plot from x- and y-coordiantes. |
Types
Name | |
---|---|
enum class | ArrowHeadStyle { nohead, head, filled_head, empty_head, backhead, filled_backhead, empty_backhead} Enum for the differnt arrow head styles used for vectors, quivers and the like. |
enum class | DataRelation |
enum class | ImageFileType |
enum class | LineType |
enum class | OutputFileType |
enum class int | PointType |
enum class | TerminalType |
Functions
Name | |
---|---|
const char * | to_command(ArrowHeadStyle ahs) turns the enum plotpp::ArrowHeadStyle into its corresponding gnuplot command. |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3,PtrOrMoved U4> auto |
arrows(U1 && x1, U2 && y1, U3 && x2, U4 && y2) helper constructor function to construct an arrows, where all coordinates are absolute to the graphs origin. |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3,PtrOrMoved U4> auto |
vector(U1 && x1, U2 && y1, U3 && x2, U4 && y2) helper constructor function to construct vectors, where all coordinates are absolute to the graphs origin. |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3,PtrOrMoved U4> auto |
quiver(U1 && x, U2 && y, U3 && u, U4 && v) helper constructor function to construct quivers (arrows), [x, y] are absolute starting positions and [u, v] are relative to the start of the arrow [x, y]. |
template <PtrOrMoved Uf,PtrOrMoved Uamp,PtrOrMoved Uphi> Multiplot |
bode(Uf && frequencies, Uamp && amplitudes, Uphi && phases, std::string title ="Bode Diagram", std::string freqLabel ="Frequency in Hz", std::string ampLabel ="Amplitude in dB", std::string phaseLabel ="Phase in deg") Creates a bode plotpp. |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
boxes(U1 && x, U2 && y) |
template <PtrOrMoved U2> auto |
boxes(U2 && y) |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
boxplot(const U1 & x_scalar, U2 && y_range) |
template <PtrOrMoved U2> auto |
boxplot(U2 && y_range) |
Circle | circle(float x, float y, float radius =1.0f, float startAngle =0.0f, float endAngle =360.0f) |
Color | operator+(const Color & l, const Color & r) |
Color | operator-(const Color & l, const Color & r) |
Color | operator*(const Color & l, const Color & r) |
Color | operator*(const Color & l, const float & r) |
Color | operator*(const float & l, const Color & r) |
Color | blend(const Color & a, const Color & b, const float & t) |
template <size_t N> Color |
map(const float & v, const std::array< Color, N > & color_map) |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3> auto |
filledcurves(U1 && x, U2 && y1, U3 && y2) |
template <PtrOrMoved U2,PtrOrMoved U3> auto |
filledcurves(U2 && y1, U3 && y2) |
template <PtrOrMoved U1> auto |
heatmap(U1 && matrix, size_t rows, size_t columns, std::function< double(const remove_ptr_t< std::remove_reference_t< U1 > > &, size_t, size_t)> at, Text title ="") |
template <MatrixLike U1> auto |
heatmap(U1 && matrix) |
template <MatrixLike U1> auto |
heatmap(U1 * matrix) |
template <class T ,size_t ROWS,size_t COLS> auto |
heatmap(const T(*) array[ROWS][COLS]) |
std::string_view | to_string(ImageFileType filetype) |
ImageFileType | image_filetype_from_filename(std::string_view filename) |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
impulses(U1 && x, U2 && y) |
template <PtrOrMoved U2> auto |
impulses(U2 && y) |
template <PtrOrMoved Ux,PtrOrMoved Uy> auto |
line(Ux && x, Uy && y) Construction helper function to create a Line instance with x- and y-coordinate ranges. |
template <PtrOrMoved Uy> auto |
line(Uy && y) Construction helper function to create a Line instance with x and y coordinate ranges. |
std::string_view | to_command(LineType dt) |
std::string_view | to_file_ending(OutputFileType t) |
TerminalType | to_terminal(OutputFileType t) |
OutputFileType | filetype_from_filename(std::string_view filename) |
template <PtrOrMoved U1,class U2 > auto |
piechart(U1 && names, const U2 & values) |
template <PtrOrMoved U1,class U2 > auto |
piechart(U1 && names, const U2 * values) |
template <PtrOrMoved U2> auto |
piechart(const U2 & values) |
template <PtrOrMoved U2> auto |
piechart(const U2 * values) |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
points(U1 && x, U2 && y) Construction helper function to create a Plot instance with x- and y-coordinate ranges. |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
scatter(U1 && x, U2 && y) Construction helper function to create a Plot instance with x- and y-coordinate ranges. |
template <PtrOrMoved U2> auto |
points(U2 && y) Construction helper function to create a Plot instance with x- and y-coordinate ranges. |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
scatter(U2 && y) Construction helper function to create a Plot instance with x- and y-coordinate ranges. |
template <PtrOrMoved U1,PtrOrMoved U2> auto |
steps(U1 && x, U2 && y) |
template <PtrOrMoved U2> auto |
steps(U2 && y) |
std::string_view | to_command(TerminalType t) |
std::ostream & | operator<<(std::ostream & stream, const Text & text) |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3> auto |
xerror(U1 && x, U2 && y, U3 && xerr) |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3,PtrOrMoved U4> auto |
xyerror(U1 && x, U2 && y, U3 && xerr, U4 && yerr) |
template <PtrOrMoved U1,PtrOrMoved U2,PtrOrMoved U3> auto |
yerror(U1 && x, U2 && y, U3 && yerr) |
template <PtrOrMoved Ux,PtrOrMoved Uy,PtrOrMoved Uerr> auto |
yerrorline(Ux && x, Uy && y, Uerr && err) Construction helper function to create a YErrorLine instance with x- and y-coordinate ranges. |
template <PtrOrMoved Uy,PtrOrMoved Uerr> auto |
yerrorline(Uy && y, Uerr && err) Construction helper function to create a YErrorLine instance with x and y coordinate ranges. |
Types Documentation
enum ArrowHeadStyle
Enumerator | Value | Description |
---|---|---|
nohead | ||
head | ||
filled_head | ||
empty_head | ||
backhead | ||
filled_backhead | ||
empty_backhead |
Enum for the differnt arrow head styles used for vectors, quivers and the like.
See: to_command(ArrowHeadStyle)
enum DataRelation
Enumerator | Value | Description |
---|---|---|
absolute | ||
relative | ||
polar |
enum ImageFileType
Enumerator | Value | Description |
---|---|---|
NONE | ||
png | ||
jpeg | ||
webp | ||
gif |
enum LineType
Enumerator | Value | Description |
---|---|---|
none | -1 | |
solid | 1 | |
dashed | 2 | |
doted | 3 | |
dash_doted | 4 | |
dash_doted2 | 5 |
enum OutputFileType
Enumerator | Value | Description |
---|---|---|
NONE | ||
tex | ||
cgm | ||
dxf | ||
emf | ||
eps | ||
fig | ||
gif | ||
jpeg | ||
png | ||
svg | ||
webp | ||
html | ||
txt | ||
gp |
enum PointType
Enumerator | Value | Description |
---|---|---|
None | -1 | |
SmallDot | 0 | |
Plus | 1 | |
X | 2 | |
PlusX | 3 | |
Square | 4 | |
SquareFilled | 5 | |
Circle | 6 | |
CircleFilled | 7 | |
TriangleUp | 8 | |
TriangleUpFilled | 9 | |
TriangleDown | 10 | |
TriangleDownFilled | 11 | |
Rhombus | 12 | |
RhombusFilled | 13 | |
Heptagon | 14 | |
HeptagonFilled | 15 |
enum TerminalType
Enumerator | Value | Description |
---|---|---|
NONE | ||
cairolatex | ||
canvas | ||
cgm | ||
context | ||
domterm | ||
dumb | ||
txt | ||
dxf | ||
emf | ||
epscairo | ||
epslatex | ||
fig | ||
gif | ||
hpgl | ||
jpeg | ||
kittycairo | ||
kittygd | ||
lua | ||
pcl5 | ||
pdfcairo | ||
pict2e | ||
png | ||
pngcairo | ||
postscript | ||
pslatex | ||
pstex | ||
pstricks | ||
qt | ||
sixelgd | ||
svg | ||
texdraw | ||
tikz | ||
tkcanvas | ||
unknown | ||
webp | ||
windows | ||
wxt |
Functions Documentation
function to_command
const char * to_command(
ArrowHeadStyle ahs
)
turns the enum plotpp::ArrowHeadStyle into its corresponding gnuplot command.
Return: a c-string with the command
function arrows
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3,
PtrOrMoved U4>
inline auto arrows(
U1 && x1,
U2 && y1,
U3 && x2,
U4 && y2
)
helper constructor function to construct an arrows, where all coordinates are absolute to the graphs origin.
Parameters:
- x1y1 The start coordinates of the Arrow
- x2y2 The end coordinates of the Arrow (absolute to the graphs origin)
Template Parameters:
-
U1U2U3U4 Can either be:
-
a pointer to data (The Arrow will not own the data, aka. not deconstruct it) or
- data that is moved (The Arrow will own the data, aka. destruct it) Further the datatype has to be a forward range because of the constructor Arrows::Arrows
Return: an Arrow class for plotting
Function that constructs an Arrow. This will automatically derive correct types from the data-ranges and converts them into an optional_ptr that may or may not be the owner of the data.
function vector
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3,
PtrOrMoved U4>
inline auto vector(
U1 && x1,
U2 && y1,
U3 && x2,
U4 && y2
)
helper constructor function to construct vectors, where all coordinates are absolute to the graphs origin.
Parameters:
- x1y1 The start coordinates of the Arrow
- x2y2 The end coordinates of the Arrow (absolute to the graphs origin)
Template Parameters:
-
U1U2U3U4 Can either be:
-
a pointer to data (The Arrow will not own the data, aka. not deconstruct it) or
- data that is moved (The Arrow will own the data, aka. destruct it) Further the datatype has to be a forward range because of the constructor Arrows::Arrows
Return: an Arrow class for plotting
Alias of arrows(U1&& x1, U2&& y1, U3&& x2, U4&& y2). Function that constructs vectors where all coordinates are absolute to the graphs origin. This will automatically derive correct types from the data-ranges and converts them into an optional_ptr that may or may not be the owner of the data.
function quiver
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3,
PtrOrMoved U4>
inline auto quiver(
U1 && x,
U2 && y,
U3 && u,
U4 && v
)
helper constructor function to construct quivers (arrows), [x, y] are absolute starting positions and [u, v] are relative to the start of the arrow [x, y].
Parameters:
- xy The start coordinates of the Arrow
- uv The end coordinates of the Arrow (relative to the arrows start [x, y])
Template Parameters:
-
U1U2U3U4 Can either be:
-
a pointer to data (The Arrow will not own the data, aka. not deconstruct it) or
- data that is moved (The Arrow will own the data, aka. destruct it) Further the datatype has to be a forward range because of the constructor Arrows::Arrows
Return: an Arrow class for plotting
equivalent of calling arrows(x, y, u, v).dataRelation(DataRelation::relative)
. Function that constructs vectors where all [u, v] are relative to the arrows start [x, y]. This will automatically derive correct types from the data-ranges and converts them into an optional_ptr that may or may not be the owner of the data.
function bode
template <PtrOrMoved Uf,
PtrOrMoved Uamp,
PtrOrMoved Uphi>
Multiplot bode(
Uf && frequencies,
Uamp && amplitudes,
Uphi && phases,
std::string title ="Bode Diagram",
std::string freqLabel ="Frequency in Hz",
std::string ampLabel ="Amplitude in dB",
std::string phaseLabel ="Phase in deg"
)
Creates a bode plotpp.
Parameters:
- frequencies : [PtrOrMoved] - The frequency values as a container with
begin()
andend()
iterators that is either a pointer (raw or smart) or the moved container itself. - amplitudes : [PtrOrMoved] - The amplitudes values as a container with
begin()
andend()
iterators that is either a pointer (raw or smart) or the moved container itself. - phases : [PtrOrMoved] - The phases values as a container with
begin()
andend()
iterators that is either a pointer (raw or smart) or the moved container itself. - title : std::string - The title of the bode plot - Multiplot (default: "Bode Diagram")
- freqLabel : std::string - The label of the frequency-axis (default: "Frequency in Hz")
- ampLabel : std::string - The label of the ampLabel-axis (default: "Frequency in Hz")
- phaseLabel : std::string - The label of the phaseLabel-axis (default: "Frequency in Hz")
Return: Multiplot - The generated bode plot.
Creates a multiplot with two plots on top of each other. The top one will show the amplitued and the bottom will show the phase over the frequency. The freqency axis will be formated to be in log-scale.
function boxes
template <PtrOrMoved U1,
PtrOrMoved U2>
inline auto boxes(
U1 && x,
U2 && y
)
function boxes
template <PtrOrMoved U2>
inline auto boxes(
U2 && y
)
function boxplot
template <PtrOrMoved U1,
PtrOrMoved U2>
auto boxplot(
const U1 & x_scalar,
U2 && y_range
)
function boxplot
template <PtrOrMoved U2>
auto boxplot(
U2 && y_range
)
function circle
inline Circle circle(
float x,
float y,
float radius =1.0f,
float startAngle =0.0f,
float endAngle =360.0f
)
function operator+
Color operator+(
const Color & l,
const Color & r
)
function operator-
Color operator-(
const Color & l,
const Color & r
)
function operator*
Color operator*(
const Color & l,
const Color & r
)
function operator*
Color operator*(
const Color & l,
const float & r
)
function operator*
Color operator*(
const float & l,
const Color & r
)
function blend
Color blend(
const Color & a,
const Color & b,
const float & t
)
function map
template <size_t N>
Color map(
const float & v,
const std::array< Color, N > & color_map
)
function filledcurves
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3>
auto filledcurves(
U1 && x,
U2 && y1,
U3 && y2
)
function filledcurves
template <PtrOrMoved U2,
PtrOrMoved U3>
auto filledcurves(
U2 && y1,
U3 && y2
)
function heatmap
template <PtrOrMoved U1>
auto heatmap(
U1 && matrix,
size_t rows,
size_t columns,
std::function< double(const remove_ptr_t< std::remove_reference_t< U1 > > &, size_t, size_t)> at,
Text title =""
)
function heatmap
template <MatrixLike U1>
auto heatmap(
U1 && matrix
)
function heatmap
template <MatrixLike U1>
auto heatmap(
U1 * matrix
)
function heatmap
template <class T ,
size_t ROWS,
size_t COLS>
auto heatmap(
const T(*) array[ROWS][COLS]
)
function to_string
std::string_view to_string(
ImageFileType filetype
)
function image_filetype_from_filename
ImageFileType image_filetype_from_filename(
std::string_view filename
)
function impulses
template <PtrOrMoved U1,
PtrOrMoved U2>
auto impulses(
U1 && x,
U2 && y
)
function impulses
template <PtrOrMoved U2>
auto impulses(
U2 && y
)
function line
template <PtrOrMoved Ux,
PtrOrMoved Uy>
auto line(
Ux && x,
Uy && y
)
Construction helper function to create a Line instance with x- and y-coordinate ranges.
Parameters:
- x : [PtrOrMoved] - The x-coordinate data. Can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range - y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Line instance.
function line
template <PtrOrMoved Uy>
auto line(
Uy && y
)
Construction helper function to create a Line instance with x and y coordinate ranges.
Parameters:
- y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Line instance.
function to_command
std::string_view to_command(
LineType dt
)
function to_file_ending
std::string_view to_file_ending(
OutputFileType t
)
function to_terminal
TerminalType to_terminal(
OutputFileType t
)
function filetype_from_filename
OutputFileType filetype_from_filename(
std::string_view filename
)
function piechart
template <PtrOrMoved U1,
class U2 >
auto piechart(
U1 && names,
const U2 & values
)
function piechart
template <PtrOrMoved U1,
class U2 >
auto piechart(
U1 && names,
const U2 * values
)
function piechart
template <PtrOrMoved U2>
auto piechart(
const U2 & values
)
function piechart
template <PtrOrMoved U2>
auto piechart(
const U2 * values
)
function points
template <PtrOrMoved U1,
PtrOrMoved U2>
auto points(
U1 && x,
U2 && y
)
Construction helper function to create a Plot instance with x- and y-coordinate ranges.
Parameters:
- x : [PtrOrMoved] - The x-coordinate data. Can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range - y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Points instance.
function scatter
template <PtrOrMoved U1,
PtrOrMoved U2>
auto scatter(
U1 && x,
U2 && y
)
Construction helper function to create a Plot instance with x- and y-coordinate ranges.
Parameters:
- x : [PtrOrMoved] - The x-coordinate data. Can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range - y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Points instance.
Wrapper to for the function points(U1&& x, U2&& y), to provide another common name used for this kind of plots.
function points
template <PtrOrMoved U2>
auto points(
U2 && y
)
Construction helper function to create a Plot instance with x- and y-coordinate ranges.
Parameters:
- y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Points instance.
function scatter
template <PtrOrMoved U1,
PtrOrMoved U2>
auto scatter(
U2 && y
)
Construction helper function to create a Plot instance with x- and y-coordinate ranges.
Parameters:
- y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A Points instance.
Wrapper to for the function points(U2&& y), to provide another common name used for this kind of plots.
function steps
template <PtrOrMoved U1,
PtrOrMoved U2>
auto steps(
U1 && x,
U2 && y
)
function steps
template <PtrOrMoved U2>
auto steps(
U2 && y
)
function to_command
std::string_view to_command(
TerminalType t
)
function operator<<
std::ostream & operator<<(
std::ostream & stream,
const Text & text
)
function xerror
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3>
auto xerror(
U1 && x,
U2 && y,
U3 && xerr
)
function xyerror
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3,
PtrOrMoved U4>
auto xyerror(
U1 && x,
U2 && y,
U3 && xerr,
U4 && yerr
)
function yerror
template <PtrOrMoved U1,
PtrOrMoved U2,
PtrOrMoved U3>
auto yerror(
U1 && x,
U2 && y,
U3 && yerr
)
function yerrorline
template <PtrOrMoved Ux,
PtrOrMoved Uy,
PtrOrMoved Uerr>
auto yerrorline(
Ux && x,
Uy && y,
Uerr && err
)
Construction helper function to create a YErrorLine instance with x- and y-coordinate ranges.
Parameters:
- x : [PtrOrMoved] - The x-coordinate data. Can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range - y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A YErrorLine instance.
function yerrorline
template <PtrOrMoved Uy,
PtrOrMoved Uerr>
auto yerrorline(
Uy && y,
Uerr && err
)
Construction helper function to create a YErrorLine instance with x and y coordinate ranges.
Parameters:
- y : [PtrOrMoved] - The y-coordinate data. can be passed by pointer
&x
or movedstd::move(x)
. Also has to satisfy std::ranges::forward_range
Return: A YErrorLine instance.
Updated on 2025-03-11 at 16:08:10 +0100