From 8ddd5c93b8689ff403daea160a9194c1ad699762 Mon Sep 17 00:00:00 2001 From: micaela Date: Tue, 9 Feb 2021 11:10:03 +0100 Subject: [PATCH] add named_plot_styled Signed-off-by: micaela --- matplotlibcpp.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/matplotlibcpp.h b/matplotlibcpp.h index 93a72be5..2f117f86 100644 --- a/matplotlibcpp.h +++ b/matplotlibcpp.h @@ -1394,6 +1394,34 @@ bool named_plot(const std::string& name, const std::vector& x, const st return res; } +template +bool named_plot_styled(const std::string& name, const std::vector& x, const std::vector& y, const std::string& color = "", const std::string& marker = "", const std::string& linestyle = "") +{ + detail::_interpreter::get(); + + PyObject* kwargs = PyDict_New(); + PyDict_SetItemString(kwargs, "label", PyString_FromString(name.c_str())); + PyDict_SetItemString(kwargs, "color", PyString_FromString(color.c_str())); + PyDict_SetItemString(kwargs, "marker", PyString_FromString(marker.c_str())); + PyDict_SetItemString(kwargs, "linestyle", PyString_FromString(linestyle.c_str())); + + PyObject* xarray = detail::get_array(x); + PyObject* yarray = detail::get_array(y); + + + PyObject* plot_args = PyTuple_New(2); + PyTuple_SetItem(plot_args, 0, xarray); + PyTuple_SetItem(plot_args, 1, yarray); + + PyObject* res = PyObject_Call(detail::_interpreter::get().s_python_function_plot, plot_args, kwargs); + + Py_DECREF(kwargs); + Py_DECREF(plot_args); + if (res) Py_DECREF(res); + + return res; +} + template bool named_semilogx(const std::string& name, const std::vector& x, const std::vector& y, const std::string& format = "") {