樹圖
樹圖主要用來表達關系結構。
樹圖的端點也收symbol的調節
樹圖的特有屬性:
- 樹圖的方向: layout、orient
- 子節點收起展開:initialTreeDepth、expandAndCollapse
- 葉子節點設置: leaves
- 操作設置:roam
- 線條:除了lineStyle可以調節線條外,還有edgeShape調節形狀,edgeForkPosition調節樹杈位置。
沒有子節點的要葉子節點leave
樹圖中的data只能有一個數據
let options = {tooltip: {show: true,},series: [{type: "tree",data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
layout:樹圖的布局,有 正交 和 徑向 兩種,默認情況下是’orthogonal’正交布局,'radial’是徑向布局。
let options = {tooltip: {show: true,},series: [{type: "tree",layout: "radial", //"orthogonal"data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
orient:在 layout = ‘orthogonal’ 的時候,該配置項才生效,在水平方向的排列方式。
取值有’LR’ (從左到右), ‘RL’(從右到左), ‘TB’(從上到下), ‘BT’(從下到上)。
initialTreeDepth:樹圖初始展開的層級(深度)。如果設置為 -1 或者 null 或者 undefined,所有節點都將展開。
expandAndCollapse:子樹折疊和展開的交互,默認打開 。折疊后是否可以打開。
let options = {tooltip: {show: true,},series: [{type: "tree",layout: "orthogonal", //"radial"orient: "BT",initialTreeDepth: 1,expandAndCollapse: true,data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],
};
roam:是否開啟鼠標縮放和平移漫游。
葉子節點的設置
let options = {tooltip: {show: true,},series: [{type: "tree",layout: "orthogonal", //"radial"orient: "BT",initialTreeDepth: 1,expandAndCollapse: true,roam: true,leaves: {label: {show: false,},},data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
edgeShape:該配置項只在 正交布局 下有效。樹圖在 正交布局 下,邊的形狀
edgeForkPosition: 正交布局下當邊的形狀是折線時,子樹中折線段分叉的位置。子節點在分叉處的位置
let options = {tooltip: {show: true,},series: [{type: "tree",layout: "orthogonal", //"radial"orient: "BT",initialTreeDepth: 1,expandAndCollapse: true,roam: true,leaves: {label: {show: false,},},lineStyle: {color: "blue",},edgeShape: "polyline", // curveedgeForkPosition: "80%",data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
矩形樹圖
矩形樹圖強調包含關系,相對于樹圖,更能看出誰的占比大。
矩形樹圖內的矩形受itemStyle的調節。
矩形樹圖特有的屬性:
- 矩形比例:squareRtio
- 子節點相關的: leafDepth,drillDownIcon
- 操作設置: roam,nodeClick
- 顏色相關的設置:colorAlpha,colorSaturation,colorMappingBy
- 過小數據隱藏:visibleMin,childrenVisibleMin
- 面包屑:breadcrumb
- 特殊的label:upperLabel
- 數據維度與levels-data里的value的數組寫法,visualDimension
矩形數組必須有value
let options = {tooltip: {show: true,},series: [{type: "treemap",data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
squareRatio:期望矩形長寬比率,將矩形比例設為1,并不一定就是正方形,只是往正方形的比例靠。
let options = {tooltip: {show: true,},series: [{type: "treemap",squareRatio: 1,data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{ name: "c1", value: 3 },{ name: "c2", value: 3 },],},],},],},],};
leafDepth:下鉆,設置初始展示的節點。
drillDownIcon:當節點可以下鉆時的提示符。只能是字符。
默認情況下的下鉆提示符
修改下鉆提示符
let options = {tooltip: {show: true,},series: [{type: "treemap",squareRatio: 1,leafDepth: 1,drillDownIcon: "+",data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{name: "c1",value: 3,children: [{name: "d1",value: 2,children: [{ name: "e1", value: 1 },{ name: "e2", value: 1 },],},{ name: "d2", value: 1 },],},{ name: "c2", value: 3 },],},],},],},],
};
nodeClick: “link”, //點擊節點后的行為false “zoomToNode”
colorAlpha: [0.3, 1],本系列默認的顏色透明度選取范圍,data中的value越小,顏色就越透明。
let options = {tooltip: {show: true,},series: [{type: "treemap",squareRatio: 1,leafDepth: 1,drillDownIcon: "+",nodeClick: "link", //點擊節點后的行為false "zoomToNode"colorAlpha: [0.3, 1],data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{name: "c1",value: 3,children: [{name: "d1",value: 2,children: [{ name: "e1", value: 1 },{ name: "e2", value: 1 },],},{ name: "d2", value: 1 },],},{ name: "c2", value: 3 },],},],},],},],};
colorMappingBy:表示同一層級節點,在顏色列表中以什么樣的方式選擇color
breadcrumb:對面包屑的設置。
let options = {tooltip: {show: true,},series: [{type: "treemap",squareRatio: 1,leafDepth: 1,drillDownIcon: "+",nodeClick: "link",colorAlpha: [0.3, 1],colorMappingBy: "value",breadcrumb: {show: false,},data: [{name: "a",value: 10,children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{name: "c1",value: 3,children: [{name: "d1",value: 2,children: [{ name: "e1", value: 1 },{ name: "e2", value: 1 },],},{ name: "d2", value: 1 },],},{ name: "c2", value: 3 },],},],},],},],
};
upperLabel 用于顯示矩形的父節點的標簽
visualDimension :支持對數據其他維度進行視覺映射。每個節點的 value 都可以是數組,visualDimension 指定使用的是數組的哪一項。
levels:可以對每個節點進行配置
let options = {tooltip: {show: true,},series: [{type: "treemap",squareRatio: 1,leafDepth: 1,drillDownIcon: "+",nodeClick: "link", //點擊節點后的行為false "zoomToNode"// colorAlpha: [0.3, 1],colorMappingBy: "value",breadcrumb: {show: false,},upperLabel: {show: true,},// visualDimension: 1,levels: [{//給第一層配color: ["red"],},{//給第二層配color: ["yellow", "green"],},],data: [{name: "a",value: 10, // [10, 20]children: [{ name: "b1", value: 4 },{name: "b2",value: 6,children: [{name: "c1",value: 3,children: [{name: "d1",value: 2,children: [{ name: "e1", value: 1 },{ name: "e2", value: 1 },],},{ name: "d2", value: 1 },],},{ name: "c2", value: 3 },],},],},],},],};
關系圖
關系圖先通過data畫出點,然后再通過links數組指定連接關系。
1.關系圖的節點收symbol的調節
2.特殊的屬性
關系圖連線相關的 edgeSymbol,edgeSymbolSize,edgeLabel
布局相關的 layout, circular
操作相關 roam
let options = {tooltip: {show: true,},series: [{type: "graph",data: [{value: 10,name: "張三",x: 40,y: 40,},{value: 30,name: "李四",x: 50,y: 100,},{value: 20,name: "王五",x: 80,y: 40,},],links: [{source: "張三",target: "李四",},],},],};
然后將設置 xAxis,xAxis,指定坐標系,通過下表來連接
let options = {tooltip: {show: true,},xAxis: {type: "category",data: ["d1", "d2", "d3"],},yAxis: {},series: [{type: "graph",symbolSize: 20,coordinateSystem: "cartesian2d",data: [["d1", 20],["d2", 30],["d3", 50],],links: [{source: 0,target: 1,},],},],};
桑基圖
用來表示流向的,可以看作是關系圖的一種圖形化表達,跟關系圖一樣,通過設置data來定義位置,然后用links連接代表流向。
桑基圖的節點通過itemStyle來調節,桑基圖的連接邊受lineStyle調節。
特殊的屬性:
朝向: orient
桑基矩形節點相關 nodeWidth,nodeGap
let options = {tooltip: {show: true,},series: [{type: "sankey",data: [{name: "生產",},{name: "銷售",},{name: "出口",},{name: "庫存",},],links: [{source: "生產",target: "銷售",value: 100,},{source: "生產",target: "出口",value: 50,},{source: "生產",target: "庫存",value: 40,},],},],};
nodeWidth:桑基圖中每個矩形節點的寬度
nodeGap:桑基圖中每一列任意兩個矩形節點之間的間隔
let options = {tooltip: {show: true,},series: [{type: "sankey",orient: "vertical",nodeWidth: 50,nodeGap: 8,data: [{name: "生產",},{name: "銷售",},{name: "出口",},{name: "庫存",},],links: [{source: "生產",target: "銷售",value: 100,},{source: "生產",target: "出口",value: 50,},{source: "生產",target: "庫存",value: 40,},],},],};
日歷圖
日歷圖更像一種坐標系
calendar:日歷坐標系組件
range:日歷坐標的范圍
let options = {tooltip: {show: true,},calendar: {range: ["2024-5"],width: 300,height: 300,},series: [{}],};
日歷圖中的數據以graph關系圖為例,可以是其他的圖。
let options = {tooltip: {show: true,},calendar: {range: ["2024-5"],width: 300,height: 380,orient: "vertical",},series: [{type: "graph",coordinateSystem: "calendar",data: [["2024-5-1", 10],["2024-5-4", 40],["2024-5-7", 20],["2024-5-11", 30],["2024-5-21", 10],["2024-5-22", 10],],links: [{source: 0,target: 1,},],},],};