有没有人知道在CERN的ROOT程序中将第二个x轴添加到TGraph的方法或代码?我一直在搜索根网站,它的文档几乎总是让我困惑。我需要的只是一个数据图,但是顶部的第二个X轴,其值是底部x轴'值的函数。它基本上是如此懒惰的人不必从底部x轴的数字转换到顶部x轴。
一个简单的例子(如果我不清楚)
假设你有一条正弦曲线,这是theta的一些功能。在顶部x轴上我们可以有度数,而在底部我们可以有360度弧度对应于2pi rad的弧度...
任何帮助将不胜感激!
答案 0 :(得分:1)
TGaxis是您想要在任何您想要的地方绘制额外轴的类。抓住你的垫的世界坐标,你可以这样叠加。将low
和high
替换为适当的限制。
// 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轴。
答案 2 :(得分:0)