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 = "") {