在C ++中绘制散点图的最佳方法是什么?
您是否将数据写入文件并使用其他工具?在Python中是否有类似matplotlib的库?
答案 0 :(得分:30)
我总是写出数据,然后使用gnuplot创建我的图表。到目前为止,这是我发现以各种格式生成图形的最佳方式:eps,png,jpeg,xpm,你可以命名。
gnuplot
很容易散点图。如果x
和y
值在2个以空格分隔的列中,则
plot "data.txt" using 1:2
会给你一个快速散点图。然后你可以调整它,什么不使用其他gnuplot命令。
如果您参与科学,那么学习gnuplot
对您来说非常有价值。它确实可以解决做excel情节的问题,并且可以简化制作包含在论文中的情节的任务。
答案 1 :(得分:13)
如果你正在寻找一个C ++库而不是像gnuplot这样的独立绘图工具,我会考虑以下几点:
迪普林似乎是两者中更有趣的。以下是从维基百科文章中提取的描述:DISLIN是由Helmut Michels在德国Katlenburg-Lindau的马克斯普朗克研究所开发的高级且易于使用的绘图库。 Helmut Michels目前在该研究所的计算机中心担任数学家和Unix系统管理员。
DISLIN库包含用于将数据显示为曲线,条形图,饼图,3D颜色图,曲面,轮廓和贴图的例程和函数。支持多种输出格式,如X11,VGA,PostScript,PDF,CGM,HPGL,SVG,PNG,BMP,PPM,GIF和TIFF。
DISLIN适用于编程语言Fortran 77,Fortran 90/95和C.大多数操作系统也支持Perl,Python和Java语言的绘图扩展。当前版本的DISLIN是9.4,于2008年10月发布。第一版1.0于1986年12月发布。
DISLIN软件可免费用于非商业用途。
答案 2 :(得分:10)
非常重的解决方案:你可以链接ROOT,它可以做你想要的任何事情:
当然,它对大多数人来说有点多,但它确实完全符合您的要求。我使用它是因为我知道它已经在我的机器上了因为我就是那种物理学家。
答案 3 :(得分:5)
古老的GNU,他们拥有一切......
答案 4 :(得分:4)
这当然不是最好的方法,但我通常会编写可以由R读取的输出文件,并使用它和相应的脚本来绘制图形。
答案 5 :(得分:3)
这里的问题是,与Java不同,C ++没有内置的GUI或图形。如果要使用C ++生成图形,则需要使用可用于操作系统的GUI库。有免费的GUI库,许多跨平台,如Qt或GTK。
但是,正如其他人所指出的那样,最简单的方法是将数据保存到文本文件中,并使用其他程序生成图形。 gnuplot绝对是个不错的选择。它是大多数Linux发行版的标准配置,你可以在cygwin下获得Windows。
答案 6 :(得分:1)
如果你熟悉matplotlib,你可以在C / C ++应用程序中embed python。根据您的需要,这可能是一个快速的解决方案。
答案 7 :(得分:1)
在C ++中为任何尚未执行此操作的人进行绘图。我会说我用C ++绘制Graphs的方法
从http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/下载压缩文件“gp443win32.zip”
在“C:\ Gnuplot”中提取它 然后我读了“C:\ Gnuplot \ gnuplot \ README.Windows” 我得到了这些信息:
我使用的是Windows 7 ==>所以你需要下载“winhlp32.exe”...只需在搜索引擎中搜索“winhlp32.exe Windows 7”并浏览第一个链接。
在“Path”环境变量中追加二进制文件夹的路径,即“C:\ Gnuplot \ gnuplot \ binary”
然后我关闭了我的电脑并再次打开它。在我发现它没有感觉到环境变量的变化之后:D
您现在需要编写示例代码来测试您的绘图能力:) 所以你可以访问这个链接 http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk 查看头文件“gnuplot_i.hpp”和源文件“example.cc”。
您将获得许多图表,选择合适的图表,自定义您的核心,并享受:)
答案 8 :(得分:0)
Chart Director具有C ++绑定。我已经使用了他们的.Net库,我对他们非常满意。这是一个非常便宜的图书馆,让你有能力做各种各样的图表。