C ++中的散点图[关闭]

Posted

技术标签:

【中文标题】C ++中的散点图[关闭]【英文标题】:Scatter Plots in C++ [closed] 【发布时间】:2010-09-17 22:11:09 【问题描述】:

在 C++ 中绘制散点图的最佳方法是什么?

您是否将数据写入文件并使用其他工具? Python中是否有类似matplotlib的库?

【问题讨论】:

检查***.com/a/40612989/2192115 一个好方法是将绘图创建为图像。然后您可以将其保存到文件或在屏幕上显示。查看此答案以了解所有详细信息:***.com/a/61632329/1682291 【参考方案1】:

我总是写出数据,然后使用gnuplot 来创建我的图表。这是迄今为止我发现的以各种格式生成图形的最佳方式:eps、png、jpeg、xpm,应有尽有。

gnuplot 很容易做散点图。如果 xy 值位于 2 个空格分隔的列中,则

plot "data.txt" using 1:2 

会给你一个快速的散点图。然后您可以调整它以及不使用其他 gnuplot 命令的内容。

如果您从事科学工作,那么学习gnuplot 对您将非常有价值。它肯定会消除做 excel 绘图的麻烦,并且可以简化制作绘图以包含在论文中的任务。

【讨论】:

【参考方案2】:

如果您正在寻找一个 C++ 库而不是像 gnuplot 这样的独立绘图工具,我会考虑以下几点:

Koolplot dislin (Wikipedia article on dislin)

dislin 似乎是两者中更有趣的一个。以下是从***文章中提取的描述:

DISLIN 是一个高级且易于使用的绘图库,由位于德国 Katlenburg-Lindau 的马克斯普朗克研究所的 Helmut Michels 开发。 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 软件可免费用于非商业用途。

【讨论】:

【参考方案3】:

非常繁重的解决方案:您可以链接到 ROOT,它几乎可以做任何您想做的事情:

在 Mac、Windows 和 Linux 上运行 运行编译或使用 cint interperter 以封装的 postscript、PDF、gif、png...输出到文件 使用多种不同的技术在屏幕上显示 以内部格式序列化数据,以便以后进行操作

当然,这对大多数人来说有点多,但它确实可以满足您的要求。我使用它是因为我知道它并且它已经在我的机器上,因为我是那种物理学家。

【讨论】:

【参考方案4】:

好老的 GNU,他们拥有一切......

http://directory.fsf.org/project/plotutils/

【讨论】:

【参考方案5】:

这当然不是最好的方法,但我通常会编写可以被R 读取的输出文件,并使用它和适当的脚本来绘制图表。

【讨论】:

【参考方案6】:

这里的问题是,与 Java 不同,C++ 没有内置的 GUI 或图形。如果您想使用 C++ 生成图形,您需要使用适用于您的操作系统的 GUI 库。有免费的 GUI 库,许多跨平台,如 Qt 或 GTK。

但是,正如其他人所指出的,您最简单的做法是将数据保存到文本文件中,然后使用另一个程序生成图形。 gnuplot 绝对是一个不错的选择。它是大多数 linux 发行版的标准配置,您可以在 cygwin 下获得 Windows。

【讨论】:

【参考方案7】:

向尚未使用 C++ 绘图的任何人致意。我会说我在 C++ 中绘制图形所做的工作

    从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”并通过第一个链接。

    将二进制文件夹的路径附加到“路径”环境变量,即“C:\Gnuplot\gnuplot\binary”

    然后我关闭计算机并再次打开它。在我发现它没有感知到环境变量的变化之后:D

    您现在需要编写一个示例代码来测试您的绘图能力:) 所以你可以访问这个链接 http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk 查看头文件“gnuplot_i.hpp”和源文件“example.cc”。

你会得到很多很多的图表,选择合适的图表,自定义你的核心,然后享受:)

【讨论】:

感谢您在互联网上找到的最具描述性的答案。拯救了我的一天【参考方案8】:

如果你熟悉 matplotlib,你可以在 C/C++ 应用程序中embedpython。根据您的需要,这可能是一个快速的解决方案。

【讨论】:

【参考方案9】:

Chart Director 具有 C++ 绑定。我使用过他们的 .Net 库,我对它们非常满意。这是一个非常便宜的库,并且可以让您制作各种不同的图表。

【讨论】:

以上是关于C ++中的散点图[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中的散点图中平滑数据点?

Grafana 中的散点图

根据 Seaborn 中的散点图绘制热图

Matplotlib 中的散点图轮廓

Excel中的散点图这么强大,学习了!

Pandas / Pyplot中的散点图:如何按类别绘制[重复]