ROOT (a Data analysis Framework) - Note3:TCanvas类

Note3:TCanvas类

TCanvas是一个画布的类,任何一张图,无论是直方图、函数曲线还是其他图,最终显示,都需要在这样一个画布上完成。实际上,如上一节那样,当你没有建立TCanvas实例就使用h.Draw()这个方法时,系统总会默认给这个Draw()方法创建一个画布,并且默认给一个名字叫c1

Info in <TCanvas::MakeDefCanvas>: created default TCanvas with name c1

但是这样你就没有办法定制这个画布的各种属性。所以,最后出图的时候,还是需要这么一个画布的。

定义一个TCanvas对象

一个简单的画布可以这样定义:

TCanvas* c = new TCanvas("c","A Normal Canvas",1000,1000);

这从C++层面来讲就是定义了一个TCanvas类的指针,TCanvas是类的名字,后面的*表示这个变量是一个指针。new关键字用于创建一块对应于某个对象的内存空间,并返回一个指针,是C++中肥肠常见的动态管理内存的用法。后面调用了TCancas类的构造函数,参数中第一项一般和定义的指针名一样,表示这个画布在内存中的位置。第二项是画布的名字,最后两项是画布的长和宽。

这样就定义了一块空白的画布,这时直接在下一行将要画的对象Draw()出来,它的图像就会显示在这张画布上。

简单的子图

有了画布,还可以做一些其他的操作,比如说把它分成或多子图:

c->Divide(2,3)

这就把画布分成两行三列,通过cd()方法,可以切换到不同的子图中去画图。最后把整张画布都显示出来。

c->cd(1);
h.Draw();
c->cd(2);
h.Draw();
....
c->Draw()
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值