跳轉到

圖層與座標軸

共同欄位

Layer(
    *,
    id=uuid,
    role="primary",
    z_index=0,
    visible=True,
    legend=None,
    model=None
)

非空字串,在場景中唯一;預設為隨機十六進位字串。圖例、區域標籤與 remove() 都透過 id 指定圖層。

以點分隔的角色名稱,例如 "primary" 或 "mypkg.boundary";它決定圖層從主題取得的樣式(詳見主題與設定)。每種圖層都有自己的預設角色,以及最後才會查詢的後備類別。

有限的繪製順序;數值越大越晚畫、越在上層。群組會把自己的 z_index 加到子圖層上。

False 時繪製會略過該圖層。

圖層在圖例中的標籤;沒有標籤的圖層不列入圖例。

用來建立該圖層的任意領域物件。它會參與繪製快取(詳見繪製),但不參與相等比較與綁定。

所有圖層共用的不可變基礎類別。各種圖層在自身的位置引數之後,都接受以下僅限關鍵字使用的欄位。

座標可以是有限實數對(資料單位),也可以是參數運算式(詳見參數、網格與動畫)。無效的幾何會在建立圖層時引發 ConfigurationError,而不是等到繪製時才報錯。

基本圖層

預設角色 — primary

繪製內容 — 通過至少兩點的折線

預設角色 — region

繪製內容 — 至少三點的多邊形,含填色與外框

預設角色 — point

繪製內容 — 每個點上的標記,至少一點

預設角色 — text

繪製內容 — 某點上的文字

預設角色 — annotation

繪製內容 — 直線箭頭,可加標籤

預設角色 — legend

繪製內容 — 有標籤圖層的圖例

預設角色 — primary

繪製內容 — 本身不畫任何東西,只將圖層分組

PathLayer(
    path,
    stroke=None,
    arrow_placement=ArrowPlacement.END,
    clip=True,
    *,
    ...
)

以直線段連接各點。若解析後的線條樣式設有 arrow,便會在 START、END 或 BOTH 端畫出與該端線段對齊的箭頭。clip=False 可讓線條以完整寬度越過繪圖區邊緣,座標軸預設組便採用此設定。

FillLayer(
    boundary,
    fill=None,
    stroke=None,
    *,
    ...
)

以 fill 填色、以 stroke 描邊的封閉多邊形。RegionLabelLayer 以它的 id 指稱它。

MarkerLayer(
    points,
    marker=None,
    *,
    ...
)

在每個點繪製一個標記。標記一律完整畫出:中心位於繪圖區邊緣的標記(例如座標軸上的點)不會被切半,中心落在繪圖區外的則會略過。

TextLayer(
    position,
    text,
    style=None,
    offset=(0, 0),
    anchor="center",
    math=False,
    *,
    ...
)

在 position 放置文字,並偏移 offset pt。anchor 指定文字框的哪一點要對準該位置:center、left、right、top、bottom、top-left、top-right、bottom-left 或 bottom-right。math=True 時,文字會以數學式排版("a_1" 成為 \(a_1\))。

ArrowLayer(
    start,
    end,
    stroke=None,
    label=None,
    arrow_placement=ArrowPlacement.END,
    *,
    ...
)

從 start 指向 end 的直線箭頭。除非線條樣式指定其他 ArrowStyle,否則使用開放式箭頭;label 寫在中點。虛線、點線或點劃線只套用在箭身,箭頭維持實線。箭頭不受繪圖區裁切。

LegendLayer(
    entries=(),
    style=None,
    *,
    ...
)

列出 entries 中各 id 所指定的圖層;entries 為空時,則列出所有帶有 legend 標籤的圖層。若 id 不存在或對應圖層沒有標籤,便會引發 RenderError。LegendStyle(visible=False) 可隱藏圖例。

GroupLayer(
    children,
    *,
    ...
)

由其他圖層組成的圖層。子圖層的繪製方式如同直接加入場景,但其 z_index 會再加上群組的值;隱藏群組也會隱藏其中所有子圖層。

座標軸

AxisSpec(
    extent,
    arrow=None,
    label=None
)
build_axes(x, y) -> list[Layer]

build_axes 將兩個座標軸規格轉成角色為 axes 的一般圖層。兩個規格都沒有 arrow 時,結果是圍住範圍的封閉框;否則,各軸會沿 \(y = 0\) 或 \(x = 0\) 畫成直線,並依指定的 ArrowPlacement 畫出實心三角箭頭。標題位於箭頭尖端之外 6 pt:x 軸標題在右側,y 軸標題在上方。

quadrant_axes(x_max, y_max)
crosshair_axes(x_range, y_range)
box_frame(total_x, total_y)

三種預設組依序為:從原點出發、遠端帶箭頭的兩軸;穿過原點、兩端帶箭頭的兩軸;以及不帶箭頭的外框。

每條座標軸都由 PathLayer 與 TextLayer 組成,因此可透過 axes 角色改變樣式、以 id(axes.x、axes.y、axes.frame、axes.x.label、axes.y.label)移除,或改用自行建立的圖層。

留言