Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib从c++; 我使用C++中的MatpTLIB进行调试。我想在同一张图上画几个图。到目前为止我有 template<typename NumericX, typename NumericY> bool plot(const NumericX const* x, const NumericY const* y, std::size_t size, const std::string& s = "") { PyObject* xlist = PyList_New(size); PyObject* ylist = PyList_New(size); PyObject* pystring = PyUnicode_FromString(s.c_str()); for(size_t i = 0; i < size; ++i) { PyList_SetItem(xlist, i, PyFloat_FromDouble(x[i])); PyList_SetItem(ylist, i, PyFloat_FromDouble(y[i])); } PyObject* plot_args = PyTuple_New(3); PyTuple_SetItem(plot_args, 0, xlist); PyTuple_SetItem(plot_args, 1, ylist); PyTuple_SetItem(plot_args, 2, pystring); PyObject* pymod = PyImport_Import(pyplotname); PyObject* s_python_function_plot = PyObject_GetAttrString(pymod, "plot"); PyObject* res = PyObject_CallObject(s_python_function_plot, plot_args); Py_DECREF(xlist); Py_DECREF(ylist); Py_DECREF(plot_args); if(res) Py_DECREF(res); return res; }_Python_C++_Matplotlib - Fatal编程技术网

Matplotlib从c++; 我使用C++中的MatpTLIB进行调试。我想在同一张图上画几个图。到目前为止我有 template<typename NumericX, typename NumericY> bool plot(const NumericX const* x, const NumericY const* y, std::size_t size, const std::string& s = "") { PyObject* xlist = PyList_New(size); PyObject* ylist = PyList_New(size); PyObject* pystring = PyUnicode_FromString(s.c_str()); for(size_t i = 0; i < size; ++i) { PyList_SetItem(xlist, i, PyFloat_FromDouble(x[i])); PyList_SetItem(ylist, i, PyFloat_FromDouble(y[i])); } PyObject* plot_args = PyTuple_New(3); PyTuple_SetItem(plot_args, 0, xlist); PyTuple_SetItem(plot_args, 1, ylist); PyTuple_SetItem(plot_args, 2, pystring); PyObject* pymod = PyImport_Import(pyplotname); PyObject* s_python_function_plot = PyObject_GetAttrString(pymod, "plot"); PyObject* res = PyObject_CallObject(s_python_function_plot, plot_args); Py_DECREF(xlist); Py_DECREF(ylist); Py_DECREF(plot_args); if(res) Py_DECREF(res); return res; }

Matplotlib从c++; 我使用C++中的MatpTLIB进行调试。我想在同一张图上画几个图。到目前为止我有 template<typename NumericX, typename NumericY> bool plot(const NumericX const* x, const NumericY const* y, std::size_t size, const std::string& s = "") { PyObject* xlist = PyList_New(size); PyObject* ylist = PyList_New(size); PyObject* pystring = PyUnicode_FromString(s.c_str()); for(size_t i = 0; i < size; ++i) { PyList_SetItem(xlist, i, PyFloat_FromDouble(x[i])); PyList_SetItem(ylist, i, PyFloat_FromDouble(y[i])); } PyObject* plot_args = PyTuple_New(3); PyTuple_SetItem(plot_args, 0, xlist); PyTuple_SetItem(plot_args, 1, ylist); PyTuple_SetItem(plot_args, 2, pystring); PyObject* pymod = PyImport_Import(pyplotname); PyObject* s_python_function_plot = PyObject_GetAttrString(pymod, "plot"); PyObject* res = PyObject_CallObject(s_python_function_plot, plot_args); Py_DECREF(xlist); Py_DECREF(ylist); Py_DECREF(plot_args); if(res) Py_DECREF(res); return res; },python,c++,matplotlib,Python,C++,Matplotlib,仅显示第一个绘图。要获得所有绘图,我能做些什么?我知道您发布该问题已经很久了,matplotlib的实现可能已经有所改进,但我仍然面临着您同样的问题,因此下面是我如何处理它的: 假设您的数据是(x0,_y_0)和(x_1,_y_1)(让我们暂时忘记大小_0和大小_1)。 只需在任何绘图()之前调用子绘图(): #包括 名称空间plt=matplotlibcpp; plt::子批次(2,1,1);//2行1列第一个绘图 plt::绘图(x_0,_y_0); plt::子批次(2,1,2);//2行

仅显示第一个绘图。要获得所有绘图,我能做些什么?

我知道您发布该问题已经很久了,matplotlib的实现可能已经有所改进,但我仍然面临着您同样的问题,因此下面是我如何处理它的: 假设您的数据是(x0,_y_0)和(x_1,_y_1)(让我们暂时忘记大小_0和大小_1)。 只需在任何
绘图()之前调用
子绘图()

#包括
名称空间plt=matplotlibcpp;
plt::子批次(2,1,1);//2行1列第一个绘图
plt::绘图(x_0,_y_0);
plt::子批次(2,1,2);//2行1列第二个绘图
plt::绘图(x_1,_y_1);
plt::show();
仅使用
plot()
通常会在同一个图形中显示重叠的两个跟踪,就像在Python中一样。 希望这能有所帮助

 plot(x_0,_y_0, size_0);
 plot(x_1,_y_1, size_1);
 show(); // just calling matplotlib.show
#include <matplotlibcpp.h>
namespace plt = matplotlibcpp;
plt::subplot(2, 1, 1); // 2 rows, 1 column, first plot
plt::plot(x_0,_y_0);

plt::subplot(2, 1, 2); // 2 rows, 1 column, second plot
plt::plot(x_1,_y_1);
plt::show();