在CERN ROOT程序中向TGraph添加第二个x轴

时间:2012-07-03 17:36:00

标签: root-framework

有没有人知道在CERN的ROOT程序中将第二个x轴添加到TGraph的方法或代码?我一直在搜索根网站,它的文档几乎总是让我困惑。我需要的只是一个数据图,但是顶部的第二个X轴,其值是底部x轴'值的函数。它基本上是如此懒惰的人不必从底部x轴的数字转换到顶部x轴。

一个简单的例子(如果我不清楚)

假设你有一条正弦曲线,这是theta的一些功能。在顶部x轴上我们可以有度数,而在底部我们可以有360度弧度对应于2pi rad的弧度...

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

TGaxis是您想要在任何您想要的地方绘制额外轴的类。抓住你的垫的世界坐标,你可以这样叠加。将lowhigh替换为适当的限制。

// your graph code here...
TGraph->Draw("AP");    

TGaxis *axis = new TGaxis(gPad->GetUxmin(),gPad->GetUymax(),gPad->GetUxmax(),gPad->GetUymax(),low,high,510,"+L");
axis->Draw();

查看TGaxis documentation了解更多示例。

答案 1 :(得分:0)

(之前的答案已删除,因为它只是下面列出的网站链接。我希望这更符合社区准则。)

我认为这可能会做你想要的。

void axis2() {
   TH1F *h = new TH1F("h","test",30,-3,3);
   h->FillRandom("gaus",10000);
   h->Draw();
   TText t;
   t.SetTextSize(0.02);
   t.SetTextAlign(22);
   Double_t yt = - h->GetMaximum()/15.;   
   for (Int_t i=1;i<=30;i++) t.DrawText(h->GetBinCenter(i),yt,Form("%d",i%10));

}

它不会创建另一辆出租车,但会向您展示如何在轴的相同位置绘制文本。答案来自Rene Brun本人(root的主要作者之一)所以我认为你不能有两个x轴。

来源: http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=7110

答案 2 :(得分:0)

这是一个显示如何继续的示例。 https://root.cern.ch/root/htmldoc/tutorials/hist/twoscales.C.html