ECharts 入门教程 Treemap父节点标签

2024-02-25 开发教程 ECharts 入门教程 匿名 6

series[i]-treemap.upperLabel

upperLabel 用于显示矩形的父节点的标签。当 upperLabel.normal.show 为 true 的时候,“显示父节点标签”功能开启。

同 series-treemap.label 一样,upperLabel 可以存在于 series-treemap 的根节点,或者 series-treemap.level 中,或者 series-treemap.data 的每个数据项中。

series-treemap.label 描述的是,当前节点为叶节点时标签的样式;upperLabel 描述的是,当前节点为非叶节点(即含有子节点)时标签的样式。(此时标签一般会被显示在节点的最上部)

参见:

点击编辑实例 》》

注:treemap中 label 属性可能在多处地方存在:

  • 可以存在于 sereis-treemap 根下,表示本系列全局的统一设置。
  • 可以存在于 series-treemap.levels 的每个数组元素中,表示树每个层级的统一设置。
  • 存在于 series-treemap.data 的每个节点中,表示每个节点的特定设置。

series[i]-treemap.upperLabel.normal

在 ECharts 中通过 normal 状态设置 Treemap 父节点标签。

show

通过该属性设置是否显示 Treemap 父节点标签,默认为 false。

position

设置父节点标签的位置。

可选值如下:

  • [x, y]通过相对的百分比或者绝对像素值表示标签相对于图形包围盒左上角的位置。 示例:
    // 绝对的像素值
    position: [10, 10],
    // 相对的百分比
    position: ['50%', '50%']
  • 'top'
  • 'left'
  • 'right'
  • 'bottom'
  • 'inside'
  • 'insideLeft'
  • 'insideRight'
  • 'insideTop'
  • 'insideBottom'
  • 'insideTopLeft'
  • 'insideBottomLeft'
  • 'insideTopRight'
  • 'insideBottomRight'

参见:label position

distance

距离图形元素的距离,值类型为 number,默认值为 5。当 position 为字符描述值(如 'top'、'insideRight')时候有效。

参见:label position

rotate

设置标签旋转的角度。从 -90 度到 90 度。正值是逆时针。

参见:label rotation

offset

是否对文字进行偏移。默认不偏移。例如:[30, 40] 表示文字在横向上偏移 30,纵向上偏移 40。

formatter

标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。

字符串模板:模板变量有 {a}、{b}、{c},分别表示系列名,数据名,数据值。

示例:

formatter: '{b}: {c}'

回调函数

回调函数格式:

(params: Object|Array) => string

参数 params 是 formatter 需要的单个数据集。格式如下:

{
componentType: 'series',
// 系列类型
seriesType: string,
// 系列在传入的 option.series 中的 index
seriesIndex: number,
// 系列名称
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// 传入的数据值
value: number|Array,
// 数据图形的颜色
color: string,
}
color

设置标签文字的颜色,默认值为 #fff。

如果设置为 'auto',则为视觉映射得到的颜色,如系列色。

fontStyle

父节点标签文字字体的风格。

可选值如下:

  • 'normal'
  • 'italic'
  • 'oblique'
fontWeight

文字字体的粗细

可选值:

  • 'normal'
  • 'bold'
  • 'bolder'
  • 'lighter'
  • 100 | 200 | 300 | 400...
fontFamily

文字的字体系列,默认值为 sans-serif。

还可以是 'serif' , 'monospace', 'Arial', 'Courier New', 'Microsoft YaHei', ...

fontSize

文字的字体大小,默认值为 12。

align

文字水平对齐方式,默认自动。

可选:

  • 'left'
  • 'center'
  • 'right'

rich 中如果没有设置 align,则会取父层级的 align。例如:

{
align: right,
rich: {
a: {
// 没有设置 `align`,则 `align` 为 right
}
}
}
verticalAlign

文字垂直对齐方式,默认自动。

可选值:

  • 'top'
  • 'middle'
  • 'bottom'

rich 中如果没有设置 verticalAlign,则会取父层级的 verticalAlign。例如:

{
verticalAlign: bottom,
rich: {
a: {
// 没有设置 `verticalAlign`,则 `verticalAlign` 为 bottom
}
}
}
lineHeight

标签行高。

rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。例如:

{
lineHeight: 56,
rich: {
a: {
// 没有设置 `lineHeight`,则 `lineHeight` 为 56
}
}
}
backgroundColor

文字块背景色。

可以是直接的颜色值,例如:'#123234', 'red', rgba(0,23,11,0.3)'。

可以支持使用图片,例如:

backgroundColor: {
image: 'xxx/xxx.png'
// 这里可以是图片的 URL,
// 或者图片的 dataURI,
// 或者 HTMLImageElement 对象,
// 或者 HTMLCanvasElement 对象。
}

当使用图片的时候,可以使用 width 或 height 指定高宽,也可以不指定自适应。

如果设置为 'auto',则为视觉映射得到的颜色,如系列色。

borderColor

文字块边框颜色。

如果设置为 'auto',则为视觉映射得到的颜色,如系列色。

borderWidth

文字块边框宽度。

borderRadius

文字块的圆角。

padding

文字块的内边距。例如:

  • padding: [3, 4, 5, 6]:表示 [上, 右, 下, 左] 的边距。
  • padding: 4:表示 padding: [4, 4, 4, 4]。
  • padding: [3, 4]:表示 padding: [3, 4, 3, 4]。

注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。

shadowColor

文字块的背景阴影颜色。

shadowBlur

文字块的背景阴影长度。

shadowOffsetX

文字块的背景阴影 X 偏移。

shadowOffsetY

文字块的背景阴影 Y 偏移。

width

文字块的宽度。一般不用指定,不指定则自动是文字的宽度。在想做表格项或者使用图片(参见 backgroundColor)时,可能会使用它。

注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。

width 也可以是百分比字符串,如 '100%'。表示的是所在文本块的 contentWidth(即不包含文本块的 padding)的百分之多少。之所以以 contentWidth 做基数,因为每个文本片段只能基于 content box 布局。如果以 outerWidth 做基数,则百分比的计算在实用中不具有意义,可能会超出。

注意,如果不定义 rich 属性,则不能指定 width 和 height。

height

父节点标签区的高度,默认为 20。

textBorderColor

文字本身的描边颜色。

如果设置为 'auto',则为视觉映射得到的颜色,如系列色。

textBorderWidth

文字本身的描边宽度。

textShadowColor

文字本身的阴影颜色。

textShadowBlur

文字本身的阴影长度。

textShadowOffsetX

文字本身的阴影 X 偏移。

textShadowOffsetY

文字本身的阴影 Y 偏移。

rich

在 rich 里面,可以自定义富文本样式。利用富文本样式,可以在标签中做出非常丰富的效果。

例如:

label: {
normal: {
// 在文本中,可以对部分文本采用 rich 中定义样式。
// 这里需要在文本中使用标记符号:
// `{styleName|text content text content}` 标记样式名。
// 注意,换行仍是使用 '\n'。
formatter: [
'{a|这段文本采用样式a}',
'{b|这段文本采用样式b}这段用默认样式{x|这段用样式x}'
].join('\n'),
rich: {
a: {
color: 'red',
lineHeight: 10
},
b: {
backgroundColor: {
image: 'xxx/xxx.jpg'
},
height: 40
},
x: {
fontSize: 18,
fontFamily: 'Microsoft YaHei',
borderColor: '#449933',
borderRadius: 4
},
...
}
}
}

详情参见教程:富文本标签

ellipsis

当文字超出的时候,是否超出部分替换为省略号,默认为 true。