用C++写root读取TXT文件并画图
时间: 2023-11-30 22:52:26 浏览: 126
下面是一个用C++和ROOT库读取TXT文件并画图的例子:
假设我们有一个名为data.txt的文件,其中包含以下数据:
```
1 2
2 4
3 6
4 8
5 10
```
我们要用ROOT库绘制这些数据的图形。
```c++
#include <iostream>
#include <fstream>
#include "TGraph.h"
#include "TCanvas.h"
using namespace std;
int main()
{
ifstream file("data.txt"); // 打开数据文件
if (!file) {
cerr << "Can't open data file!" << endl;
return 1;
}
double x, y;
vector<double> xs, ys;
while (file >> x >> y) { // 读取文件中的数据
xs.push_back(x);
ys.push_back(y);
}
TGraph *graph = new TGraph(xs.size(), &xs[0], &ys[0]); // 创建图形对象
TCanvas *canvas = new TCanvas("canvas", "Graph", 800, 600); // 创建画布对象
graph->Draw("ALP"); // 绘制图形
canvas->SaveAs("graph.png"); // 保存图形为png文件
return 0;
}
```
上面的代码首先打开数据文件,然后读取文件中的数据并将其存储在向量xs和ys中。然后,它使用TGraph类创建一个图形对象,并使用TCanvas类创建一个画布对象。最后,它将图形绘制在画布上,并将图形保存为PNG文件。
编译和运行代码:
```
g++ -o main main.cpp `root-config --cflags --glibs`
./main
```
运行后,将生成一个名为graph.png的PNG文件,其中包含从数据文件绘制的图形。
阅读全文