当前位置:  开发笔记 > 编程语言 > 正文

C++和gnuplot

如何解决《C++和gnuplot》经验,为你挑选了2个好方法。

这是我的第一篇文章,我对C++和一般编译都很新手.

我正在编写一个程序,需要绘制一些图形.该程序创建一个.dat文件,然后我应该打开gnuplot并写入' .dat'.没关系.

有没有办法让gnuplot自动打开并向我展示我需要的情节?我应该在代码中使用一些system()函数来调用gnuplot但是如何让他绘制我需要的东西呢?

对不起我的非完美英语:s

无论如何,感谢您的关注!



1> Mr.Ree..:

根据您的操作系统,您可能可以使用popen(). 这将让你产生一个gnuplot进程,只需像任何其他FILE*一样写入它.

如果您有要绘制的数据点,可以使用" - "...选项内联传递它们.同样,您可能希望探索设置数据样式点/线/线点/等选项.


没有暂停或持续,gnuplot将在输入结束时终止.在您的示例中,这将是到达文件末尾的时间.


要生成(写入)输出文件(图形),请使用:

set terminal png small
set output "filename.png"

设置终端有很多选择.Png通常在那里.如果没有,也许是gif,tiff或jpeg?

注意覆盖文件!

您可能希望使用set size 2,2来制作更大的图形.某些设置的终端变体也允许您指定大小.



2> Andrew Wagne..:

我今天也在学习这个.这是我做的一个小例子.

#include 
#include  
using namespace std;
int main(int argc, char **argv) {
    ofstream file("data.dat");
    file << "#x y" << endl;
    for(int i=0; i<10; i++){
        file << i << ' ' << i*i << endl;
    }
    file.close();
    return 0;
}

保存为plot.cpp并使用g ++编译:

g++ plot.cpp -o plot

运行该程序以创建.dat文件:

./plot

将以下gnuplot脚本保存为plot.plt:

set terminal svg enhanced size 1000 1000 fname "Times" fsize 36
set output "plot.svg"
set title "A simple plot of x^2 vs. x"
set xlabel "x"
set ylabel "y"
plot "./data.dat" using 1:2 title ""

使用gnuplot运行脚本以生成.svg文件:

gnuplot plot.plt

得到的图将在plot.svg中.如果省略指定输出的前几行,它将在窗口中呈现.玩得开心!

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有