2.3.2 坐标轴属性

坐标轴的概念

坐标轴由轴线(axisLine)、刻度(Ticket)、刻度标签(Label)、轴标题(Title)四个部分组成。

root [0] TAxis::Set
作用

SetAlphanumeric

设置轴标签为字母数字格式

SetAxisColor

设置轴的颜色

SetBinLabel

设置指定 bin 的标签

SetBit

设置位标志

SetCanExtend

设置轴是否可以扩展

SetDecimals

设置标签的小数位数

SetDefaults

设置轴的默认属性

SetDrawOption

设置轴的绘制选项

SetDtorOnly

设置仅调用析构函数

SetLabelColor

设置刻度标签颜色

SetLabelFont

设置刻度标签字体

SetLabelOffset

设置刻度标签偏移量

SetLabelSize

设置刻度标签大小

SetLimits

设置轴的范围限制

SetMaxDigits

设置标签的最大数字位数

SetMoreLogLabels

设置在对数刻度下是否显示更多的标签

SetName

设置轴的名称

SetNameTitle

设置轴的名称和标题

SetNdivisions

设置轴的分割数

SetNoAlphanumeric

设置轴标签为非字母数字格式

SetNoExponent

设置标签是否不使用科学计数法

SetObjectStat

设置对象的统计信息

SetParent

设置轴的父对象

SetRange

设置轴的范围

SetRangeUser

设置用户定义的范围

SetTickLength

设置刻度的长度

SetTickSize

设置刻度的大小

SetTicks

设置刻度的显示方式

SetTimeDisplay

设置是否显示时间

SetTimeFormat

设置时间显示的格式

SetTimeOffset

设置时间偏移量

SetTitle

设置轴的标题

SetTitleColor

设置标题颜色

SetTitleFont

设置标题字体

SetTitleOffset

设置标题偏移量

SetTitleSize

设置标题大小

SetUniqueID

设置唯一标识符

坐标轴的轴线

  • 颜色SetAxisColor() gStyle->SetAxisColor(2, "axis")设置 axis 轴为红色。 axis指定哪个轴 ("x","y","z"),如果axis="xyz"设置所有3个轴,否则默认为xh1->GetXaxis()->SetAxisColorAlpha(2,0.5)设置h1的X轴为红色,透明度为50%。 h1->GetXaxis()->SetAxisColor(2)设置h1的X轴为红色。

  • 宽度

坐标轴的边框

与坐标轴对应的位置是边框,TCanvas::????

设置帧边框模式TStyle::SetFrameBorderMode()

设置框架边框大小无效TStyle::SetFrameBorderSize()

  • 颜色:TStyle::SetFrameFillColor

  • 样式:TStyle::SetFrameFillStyle

  • 颜色:TStyle::SetFrameLineColor

  • 线条:TStyle::SetFrameLineStyle

TStyle::SetFrameLineWidth

坐标轴的刻度

绘制直方图或图表时,可以使用以下命令将网格设置为打开或关闭:

  • 刻度线TStyle::SetNdivisions()设置绘制轴的分割数 gStyle->SetNdivisions(550, "x")设置X轴的一级刻度为0,二级刻度和三级刻度为5。 n = N1 + 100\*N2 + 10000\*N3N1=初级分区的数量。N2=二级划分的数量。N3=第三分区的数量。例如:nndi=0->无刻度线。nndi=2->2个分区,中间有一个刻度线轴的。

  • 长度TStyle::SetTickLength()设置轴的刻度线长度。

  • 设置网格gPad->SetGrid()TCanvas::SetGrid() 设置X轴上的网格:gPad->SetGridx(1)TCanvas::SetGridx(); 设置Y轴上的网格:gPad->SetGridy(1); 在两个轴上设置网格:gPad->SetGrid (1,1)

  • 颜色TStyle::SetGridColor()

  • 样式TStyle::SetGridStyle()

  • 宽度TStyle::SetGridWidth()

坐标轴的标签

  • 偏移量:TStyle::SetLabelOffset()。偏移量以 pad 高度的百分比表示。 axis 指定哪个轴 ("x","y","z"),如果 axis="xyz" 设置所有 3 个轴,则默认 = "x"。

  • 字体:SetLabelFont()

  • 颜色:SetLabelColor()

  • 标签大小SetLabelSize()设置轴标签的大小 尺寸以Pad高度的百分比表示。

  • 小数对齐SetStripDecimals()0,0.5,1.25对齐为0.00,0.50,1.25TGaxis::SetMaxDigits设置轴标签允许的最大位数。

  • 偏移SetLabelOffset()

e.g.

坐标轴的标题

ROOT 的标题支持 LaTeX 语法。

设置标题的函数是GetX/Yaxis->SetTitle("name"),也可以同时设置标题、x轴标题、y轴标题,方法是SetTitle("graph tittle; x tittle; y tilttle")

同时标题支持自定义:

  • 颜色SetTitleColor()

  • 大小SetTitleSize()

  • 字体SetTextFont()

  • 距离/偏移SetTitleOffset() 设置轴和轴标题之间的距离。偏移量=1使用标准位置,该位置根据标签偏移量和尺寸计算;偏移量=1.2将使标准偏移量增加20%。

  • 标题居中CenterTitle(true)

坐标轴的范围

合理控制的轴范围,能够更好表达数据变化。root 可以自动选取轴的范围,如果自动的呈现效果不满意,root 也支持手动调整。

对于未分 bin 的数据,例如图表,更改轴范围使用TAxis::SetLimits(xmin, xmax)函数;

对于已分 bin 的数据,请清除缓存后再使用SetLimits函数,参见arrow-up-right

直方图轴范围使用TAxis::SetRange(number bin1, number bin2)函数修改,参数是分 bin 的编号的位置:

使用“用户坐标”而不是 bin 编号来设置范围更方便。且允许用户直接在直方图对象上TH::SetAxisRange(min, max, "axis")设置轴范围,而无需使用Get[XYZ]axis()。e.g.

等价于:

支持绘制图形后更改轴范围:

也可以绘制图表框架TCanvas::DrawFrame(,,,)。此方法允许指定比原始范围更大的轴范围。e.g.

调整坐标极值

下限:TGraph::SetMinimum();TH::SetMinimum()

上限:TGraph::SetMaximum();TH::SetMaximum()

双轴画法

双轴画法是一种作图技巧,通过在画面中同时运用两个或多个对称轴,以达到对称和平衡或突出、方便对比等效果。最简单的呈现效果是使用gPad

gPad->SetMargin(10,10,10,10)看不见

利用透明画布

chevron-right显示两个不同比例的直方图的画布示例-利用透明Padhashtag

利用缩放

参见2.2.2直方图-积分

反轴画法

参考2.3节图形的绘图选项

多轴画法

断轴画法

file-download
1KB

共用轴/拼接轴画法

共轴画法是一种常见的绘图技巧,在同一张 canvas 中绘制多图并共享 X 轴或 Y 轴。这种方式常用于比较不同数据集之间的趋势或关系。最简单的共轴画法是TCanvas::Divide(numberx, numbery, 0)

参考数据可视化多图画法

对数轴画法

对数轴是Tcanvas的类,所以设置对数轴,需要先建立画布。

使用SetLogx()SetLogy()命令来设置画布的X轴和Y轴为对数坐标轴。E.g.

SetLogx(0)SetLogy(1)分别表示取消x对数轴和设置y轴为对数轴,不含参数默认设置对数轴。

时间轴画法

chevron-righte.g. 模拟地震波随时间变化的图案hashtag
输入图片说明

极坐标轴画法

参考2.3节图形的极坐标图案

笛卡尔坐标系

画布边距

e.g.


参考

最后更新于