我正在做一些探索模拟,我想展示图表来比较运行时算法之间的性能.
想到什么图书馆?如果我的教练很容易编译我的代码,我非常喜欢那些我喜欢的小版本.我检查了gdchart,但它似乎太沉重了.我只想要一个简单的xy时间轴图.
谷歌图表当然是不可能的,如果你读过这个类似的问题.
相关文章C++中的Scatter Plots.
我最喜欢的一直是gnuplot.这是非常广泛的,所以它可能有点太复杂,不能满足您的需求.它是跨平台的,有一个C++ API.
老实说,我和你在同一条船上.我有一个C++库,我想连接到图形实用程序.我最终使用了Boost Python和matplotlib.这是我能找到的最好的一个.
作为旁注:我也对许可证持谨慎态度.matplotlib和boost库可以集成到专有应用程序中.
这是我使用的代码示例:
#include#include #include using namespace boost::python; using namespace std; // This is called in the idle loop. bool update(object *axes, object *canvas) { static object random_integers = object(handle<>(PyImport_ImportModule("numpy.random"))).attr("random_integers"); axes->attr("scatter")(random_integers(0,1000,1000), random_integers(0,1000,1000)); axes->attr("set_xlim")(0,1000); axes->attr("set_ylim")(0,1000); canvas->attr("draw")(); return true; } int main() { try { // Python startup code Py_Initialize(); PyRun_SimpleString("import signal"); PyRun_SimpleString("signal.signal(signal.SIGINT, signal.SIG_DFL)"); // Normal Gtk startup code Gtk::Main kit(0,0); // Get the python Figure and FigureCanvas types. object Figure = object(handle<>(PyImport_ImportModule("matplotlib.figure"))).attr("Figure"); object FigureCanvas = object(handle<>(PyImport_ImportModule("matplotlib.backends.backend_gtkagg"))).attr("FigureCanvasGTKAgg"); // Instantiate a canvas object figure = Figure(); object canvas = FigureCanvas(figure); object axes = figure.attr("add_subplot")(111); axes.attr("hold")(false); // Create our window. Gtk::Window window; window.set_title("Engineering Sample"); window.set_default_size(1000, 600); // Grab the Gtk::DrawingArea from the canvas. Gtk::DrawingArea *plot = Glib::wrap(GTK_DRAWING_AREA(pygobject_get(canvas.ptr()))); // Add the plot to the window. window.add(*plot); window.show_all(); // On the idle loop, we'll call update(axes, canvas). Glib::signal_idle().connect(sigc::bind(&update, &axes, &canvas)); // And start the Gtk event loop. Gtk::Main::run(window); } catch( error_already_set ) { PyErr_Print(); } }
我用过这个"便携式绘图仪".它非常小巧,多平台,易于使用,您可以将其插入不同的图形库.PPLOT
(仅适用于情节部分)
如果您使用或计划使用Qt,另一个多平台解决方案是Qwt和Qchart
Cern的ROOT产生了一些相当不错的东西,我用它来显示神经网络数据.