pyecharts 樹型圖表

2023-02-17 11:10 更新

Tree:樹圖

class pyecharts.charts.Tree
class Tree(
    # 初始化配置項,參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)
func pyecharts.charts.Tree.add
def add(
    # 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。
    series_name: str,

    # 系列數(shù)(jù)項
    data: Sequence[Union[opts.TreeItem, dict]],

    # 樹圖的布局,有 正交 和 徑向 兩種。這里的 正交布局 就是我們通常所說的水平 和 垂直 方向,
    # 對應的參數(shù)取值為 'orthogonal' 。而 徑向布局 是指以根節(jié)點為圓心,每一層節(jié)點為環(huán),
    # 一層層向外發(fā)散繪制而成的布局,對應的參數(shù)取值為 'radial'
    layout: str = "orthogonal",

    # 標記的圖形。ECharts 提供的標記類型包括 'emptyCircle', 'circle', 'rect', 'roundRect', 
    # 'triangle', 'diamond', 'pin', 'arrow', 'none'。
    symbol: types.JSFunc = "emptyCircle",

    # 標記的大小,可以設置成諸如 10 這樣單一的數(shù)字,也可以用數(shù)組分開表示寬和高,
    # 例如 [20, 10] 表示標記寬為 20,高為 10。
    symbol_size: types.Union[types.JSFunc, types.Numeric, types.Sequence] = 7,

    # 樹圖中 正交布局 的方向,也就是說只有在 layout = 'orthogonal' 的時候,
    # 該配置項才生效。對應有 水平 方向的 從左到右,從右到左;以及垂直方向的從上到下,
    # 從下到上。取值分別為 'LR' , 'RL', 'TB', 'BT'。注意,之前的配置項值 'horizontal' 
    # 等同于 'LR''vertical' 等同于 'TB'。
    orient: str = "LR",

    # tree組件離容器上側的距離。
    # top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
    # 也可以是 'top', 'middle', 'bottom'。
    # 如果 top 的值為'top', 'middle', 'bottom',組件會根據(jù)相應的位置自動對齊。
    pos_top: Optional[str] = None,

    # tree 組件離容器左側的距離。
    # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
    # 也可以是 'left', 'center', 'right'。
    # 如果 left 的值為'left', 'center', 'right',組件會根據(jù)相應的位置自動對齊。
    pos_left: Optional[str] = None,

    # tree 組件離容器下側的距離。
    # bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    pos_bottom: Optional[str] = None,

    # tree 組件離容器右側的距離。
    # right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    pos_right: Optional[str] = None,

    # 折疊節(jié)點間隔,當節(jié)點過多時可以解決節(jié)點顯示過雜間隔。
    collapse_interval: Numeric = 0,

    # 樹圖在 正交布局 下,邊的形狀。分別有曲線和折線兩種,對應的取值是 curve 和 polyline.
    # 注意:該配置項只在 正交布局 下有效,在經(jīng)向布局下的開發(fā)(huán)境中會報錯。
    edge_shape: str = "curve",

    # 正交布局下當邊的形狀是折線時,子樹中折線段分叉的位置。
    # 這里的位置指的是分叉點與子樹父節(jié)點的距離占整個子樹高度的百分比。
    # 默認取值是 '50%',可以是 ['0', '100%'] 之間。
    # 注意:該配置項只有在 edgeShape = 'curve' 時才有效。
    edge_fork_position: str = "50%",

    # 是否開啟鼠標縮放和平移漫游。默認不開啟。如果只想要開啟縮放或者平移。
    # 可以設置成 'scale' 或者 'move'。設置成 true 為都開啟
    is_roam: bool = False,

    # 子樹折疊和展開的交互,默認打開 。由于繪圖區(qū)域是有限的,而通常一個樹圖的節(jié)點可能會比較多,
    # 這樣就會出現(xiàn)(jié)點之間相互遮蓋的問題。為了避免這一問題,可以將暫時無關的子樹折疊收起,
    # 等到需要時再將其展開。如上面徑向布局樹圖示例,節(jié)點中心用藍色填充的就是折疊收起的子樹,可以點擊將其展開。
    # 注意:如果配置自定義的圖片作為節(jié)點的標記,是無法通過填充色來區(qū)分當前節(jié)點是否有折疊的子樹的。
    # 而目前暫不支持,上傳兩張圖片分別表示節(jié)點折疊和展開兩種狀態(tài)。所以,如果想明確地顯示節(jié)點的兩種狀態(tài),
    # 建議使用 ECharts 常規(guī)的標記類型,如 'emptyCircle' 等。
    is_expand_and_collapse: bool = True,

    # 樹圖初始展開的層級(深度)。根節(jié)點是第 0 層,然后是第 1 層、第 2 層,... ,
    # 直到葉子節(jié)點。該配置項主要和 折疊展開 交互一起使用,目的還是為了防止一次展示過多節(jié)點,
    # 節(jié)點之間發(fā)生遮蓋。如果設置為 -1 或者 null 或者 undefined,所有節(jié)點都將展開。
    initial_tree_depth: Optional[Numeric] = None,

    # 標簽配置項,參考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 葉子節(jié)點標簽配置項,參考 `series_options.LabelOpts`
    leaves_label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 提示框組件配置項,參考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
)

TreeItem

class pyecharts.options.TreeItem
class TreeItem(
    # 樹節(jié)點的名稱,用來標識每一個節(jié)點。
    name: Optional[str] = None,

    # 節(jié)點的值,在 tooltip 中顯示。
    value: Optional[Numeric] = None,

    # 該節(jié)點的樣式,參考 `series_options.LabelOpts`
    label_opts: Optional[LabelOpts] = None,

    # 子節(jié)點,嵌套定義。
    children: Optional[Sequence] = None,
)

Demo

gallery 示例

TreeMap:矩形樹圖

class pyecharts.charts.TreeMap
class TreeMap(
    # 初始化配置項,參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)
class pyecharts.options.TreeMapBreadcrumbOpts
class TreeMapBreadcrumbOpts(
    # 是否顯示面包屑。
    is_show: bool = True,

    # 組件離容器左側的距離。
    # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,也可以是 'left', 'center', 'right'。
    # 如果 left 的值為'left', 'center', 'right',組件會根據(jù)相應的位置自動對齊。
    pos_left: Union[str, Numeric] = "center",

    # 組件離容器右側的距離。
    # right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    # 默認自適應。
    pos_right: Union[str, Numeric] = "auto",

    # 組件離容器上側的距離。
    # top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,也可以是 'top', 'middle', 'bottom'。
    # 如果 top 的值為'top', 'middle', 'bottom',組件會根據(jù)相應的位置自動對齊。
    pos_top: Union[str, Numeric] = "auto",

    # 組件離容器下側的距離。
    # bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    # 默認自適應。
    pos_bottom: Union[str, Numeric] = 0,

    # 面包屑的高度。
    height: Numeric = 22,

    # 當面包屑沒有內容時候,設個最小寬度。
    empty_item_width: Numeric = 25,

    # 圖形樣式。參考 `global_options.ItemStyleOpts`
    item_opts: ItemStyleOpts = ItemStyleOpts(),
)
class pyecharts.options.TreeMapItemStyleOpts
class TreeMapItemStyleOpts(
    # 矩形的顏色。
    color: Optional[str] = None,

    # 矩形顏色的透明度。取值范圍是 0 ~ 1 之間的浮點數(shù)。
    color_alpha: Union[Numeric, Sequence] = None,

    # 矩形顏色的飽和度。取值范圍是 0 ~ 1 之間的浮點數(shù)。
    color_saturation: Union[Numeric, Sequence] = None,

    # 矩形邊框 和 矩形間隔(gap)的顏色。
    border_color: Optional[str] = None,

    # 矩形邊框線寬。為 0 時無邊框。而矩形的內部子矩形(子節(jié)點)的間隔距離是由 gapWidth 指定的。
    border_width: Numeric = 0,

    # 矩形邊框的顏色的飽和度。取值范圍是 0 ~ 1 之間的浮點數(shù)。
    border_color_saturation: Union[Numeric, Sequence] = None,

    # 矩形內部子矩形(子節(jié)點)的間隔距離。
    gap_width: Numeric = 0,

    # 每個矩形的描邊顏色。
    stroke_color: Optional[str] = None,

    # 每個矩形的描邊寬度。
    stroke_width: Optional[Numeric] = None,
)
class pyecharts.options.TreeMapLevelsOpts
class TreeMapLevelsOpts(
    # 矩形顏色的透明度。取值范圍是 0 ~ 1 之間的浮點數(shù)。
    color_alpha: Union[Numeric, Sequence] = None,

    # 矩形顏色的飽和度。取值范圍是 0 ~ 1 之間的浮點數(shù)。
    color_saturation: Union[Numeric, Sequence] = None,

    # 表示同一層級節(jié)點,在顏色列表中(參見 color 屬性)選擇時,按照什么來選擇??蛇x值:
    # 'value' 將節(jié)點的值(即 series-treemap.data.value)映射到顏色列表中。這樣得到的顏色,反應了節(jié)點值的大小。
    # 'index' 將節(jié)點的 index(序號)映射到顏色列表中。即同一層級中,第一個節(jié)點取顏色列表中第一個顏色,第二個節(jié)點取第二個。
    # 這樣得到的顏色,便于區(qū)分相鄰節(jié)點。
    # 'id' 將節(jié)點的 id 映射到顏色列表中。
    # id 是用戶指定的,這樣能夠使得,在 treemap 通過 setOption 變化數(shù)值時,同一 id 映射到同一顏色,保持一致性。
    color_mapping_by: str = "index",

    # 矩形樹圖的 Item 配置,參考 `class pyecharts.options.TreeMapItemStyleOpts`
    treemap_itemstyle_opts: Union[TreeMapItemStyleOpts, dict, None] = None,

    # 每個矩形中,文本標簽的樣式,參考 `series_options.LabelOpts`
    label_opts: Union[LabelOpts, dict, None] = None,

    # 用于顯示矩形的父節(jié)點的標簽。參考 `series_options.LabelOpts`
    upper_label_opts: Union[LabelOpts, dict, None] = None,
)
func pyecharts.charts.TreeMap.add
def add(
    # 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。
    series_name: str,

    # 系列數(shù)(jù)項
    data: Sequence[Union[opts.TreeItem, dict]],

    # 是否選中圖例。
    is_selected: bool = True,

    # leaf_depth 表示『展示幾層』,層次更深的節(jié)點則被隱藏起來。
    # 設置了 leafDepth 后,下鉆(drill down)功能開啟。drill down 功能即點擊后才展示子層級。
    # 例如,leafDepth 設置為 1,表示展示一層節(jié)點。
    leaf_depth: Optional[Numeric] = None,

    # treemap 組件離容器左側的距離。
    # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
    # 也可以是 'left', 'center', 'right'。
    # 如果 left 的值為'left', 'center', 'right',組件會根據(jù)相應的位置自動對齊。
    pos_left: Optional[str] = None,

    # treemap 組件離容器右側的距離。
    # right 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    pos_right: Optional[str] = None,

    # treemap 組件離容器上側的距離。
    # top 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比,
    # 也可以是 'top', 'middle', 'bottom'。
    # 如果 top 的值為'top', 'middle', 'bottom',組件會根據(jù)相應的位置自動對齊。
    pos_top: Optional[str] = None,

    # treemap 組件離容器下側的距離。
    # bottom 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對于容器高寬的百分比。
    pos_bottom: Optional[str] = None,

    # treemap 組件的寬度。
    width: types.Union[str, types.Numeric] = "80%",

    # treemap 組件的高度。
    height: types.Union[str, types.Numeric] = "80%",

    # 期望矩形長寬比率。布局計算時會盡量向這個比率靠近。
    # 默認為黃金比:0.5 * (1 + Math.sqrt(5))。
    square_ratio: types.Optional[types.JSFunc] = None,

    # 當節(jié)點可以下鉆時的提示符。只能是字符。
    drilldown_icon: str = "?",

    # 是否開啟拖拽漫游(移動和縮放)??扇≈涤校?    # false:關閉。
    # 'scale''zoom':只能夠縮放。
    # 'move''pan':只能夠平移。
    # true:縮放和平移均可。
    roam: types.Union[bool, str] = True,

    # 點擊節(jié)點后的行為。可取值為
    # false:節(jié)點點擊無反應。
    # 'zoomToNode':點擊節(jié)點后縮放到節(jié)點。
    # 'link':如果節(jié)點數(shù)(jù)中有 link 點擊節(jié)點后會進行超鏈接跳轉。
    node_click: types.Union[bool, str] = "zoomToNode",

    # 點擊某個節(jié)點,會自動放大那個節(jié)點到合適的比例(節(jié)點占可視區(qū)域的面積比例),這個配置項就是這個比例。
    zoom_to_node_ratio: types.Numeric = 0.32 * 0.32,

    # treemap 中采用『三級配置』:
    #『每個節(jié)點』->『每個層級』->『每個系列』。
    # 即我們可以對每個節(jié)點進行配置,也可以對樹的每個層級進行配置,也可以 series 上設置全局配置。節(jié)點上的設置,優(yōu)先級最高。
    # 最常用的是『每個層級進行配置』,levels 配置項就是每個層級的配置
    levels: types.TreeMapLevel = None,

    # 當前層級的最小 value 值。如果不設置則自動統(tǒng)計。
    visual_min: Optional[Numeric] = None,

    # 當前層級的最大 value 值。如果不設置則自動統(tǒng)計。
    visual_max: Optional[Numeric] = None,

    # 本系列默認的 顏色透明度 選取范圍。數(shù)值范圍 0 ~ 1。
    color_alpha: types.Union[types.Numeric, types.Sequence] = None,

    # 本系列默認的 顏色飽和度 選取范圍。數(shù)值范圍 0 ~ 1。
    color_saturation: types.Union[types.Numeric, types.Sequence] = None,

    # 表示同一層級節(jié)點,在顏色列表中(參見 color 屬性)選擇時,按照什么來選擇??蛇x值:
    # 'value' 將節(jié)點的值(即 series-treemap.data.value)映射到顏色列表中。這樣得到的顏色,反應了節(jié)點值的大小。
    # 'index' 將節(jié)點的 index(序號)映射到顏色列表中。即同一層級中,第一個節(jié)點取顏色列表中第一個顏色,第二個節(jié)點取第二個。
    # 這樣得到的顏色,便于區(qū)分相鄰節(jié)點。
    # 'id' 將節(jié)點的 id 映射到顏色列表中。
    # id 是用戶指定的,這樣能夠使得,在 treemap 通過 setOption 變化數(shù)值時,同一 id 映射到同一顏色,保持一致性。
    color_mapping_by: str = "index",

    # 如果某個節(jié)點的矩形的面積,小于這個數(shù)值(單位:px平方),這個節(jié)點就不顯示。
    # 如果不加這個限制,很小的節(jié)點會影響顯示效果。
    # 關于視覺設置,詳見 series-treemap.levels。
    visible_min: types.Numeric = 10,

    # 如果某個節(jié)點的矩形面積,小于這個數(shù)值(單位:px平方),則不顯示這個節(jié)點的子節(jié)點。
    # 這能夠在矩形面積不足夠大時候,隱藏節(jié)點的細節(jié)。當用戶用鼠標縮放節(jié)點時,如果面積大于此閾值,又會顯示子節(jié)點。
    # 關于視覺設置,詳見 series-treemap.levels。
    children_visible_min: types.Optional[types.Numeric] = None,

    # 標簽配置項,參考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(position="inside"),

    # 父級標簽配置項,參考 `series_options.LabelOpts`
    upper_label_opts: types.Label = opts.LabelOpts(position="inside"),

    # 提示框組件配置項,參考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

    # 圖形樣式配置,參考 `global_options.ItemStyleOpts`
    itemstyle_opts: types.ItemStyle = None,

    # 面包屑控件配置,參考 `TreeMapBreadcrumbOpts`
    breadcrumb_opts: types.TreeMapBreadcrumb = None,
)

Demo

gallery 示例


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號