最基本的数据可视化方法是使用由两个(TGraph)或三个(TGraph2D)数组组成的坐标表示数据的大小或位置,称作 Graph 。这与直方图(Histogram)不同。ROOT 提供了许多图形类,如:
TGraph图表;
TGraphErrors具有对称误差线的图表;
TGraph2D由三个数组 X、Y 和 Z 组成的图表等。
TGraph支持批量创建和运算,TGraph的创建方法是:
// 创建了一个名字是name,标题是title,有n个坐标为x,y的点:
TGraph *gr = new TGraph("name", "title", number, x, y)
TGraph* gr = new TGraph("name", "title", number, x, y)
TGraph *gr = new TGraph(number, x, y)
auto gr = new TGraph(number, x, y)
auto gr = new TGraph() // 使用AddPoint()函数添加坐标点
auto dt = new TGraph2D() // 二维图表,其他形式同理
绘制图表前需要先定义坐标数组,然后使用TGraph构造图形。E.g.
int n = 20;
double x[n], y[n];
for (int i=0; i<n; i++) {
x[i] = i*0.1;
y[i] = 10*sin(x[i]+0.2);
}
auto gr = new TGraph (n, x, y);
也支持使用AddPoint()函数添加点:
auto gr = new TGraph();
for (int i=0; i<20; i++) gr->AddPoint(i*0.1, 10*sin(i*0.1+0.2));
使用TGraph::Draw()绘制图形,且有多种绘图选项可选:
auto gr = new TGraph();
for (int i=0; i<20; i++) gr->AddPoint(i*0.1, 10*sin(i*0.1+0.2));
gr->Draw();
数据的保存格式有很多,常见的是文本格式和 root 格式:
这里要求文件中的坐标中间是空格或者制表符,不可以是逗号。E.g.
int directdata(){
TGraph *gr = new TGraph("mydata.txt");
gr->Draw("AC*"); // 绘出 axis,坐标点以 curve 链接,坐标点形状为 * 型
}