饼状图--只有一个指标echarts-带面积的折线图echarts柱状图圆角实现echarts中饼状图数据太多进行翻页echarts给每个柱状图配置不同的颜色echarts中x轴文字太长换行的几种方式echarts-中的事件-- demo1.on('事件类型', function (params) {}echarts控制柱状图柱条的宽度在地图上--给经纬度--展示任何一个点可以展示地名echarts 设置legend样式echarts饼状图不要中间的文字提示echasrts定义折线图legend的样式-优化echarts轮训展示某个echarts设置标题样式vue中如何使用echarts,使用axios获取数据echarts更改x和y轴的颜色echarts在左下角添加单位echarts的初始化和销毁dispose多个饼状图echarts第二次渲染不出来的原因echarts中坐标与标签刻度对齐echarts饼图中央自定义文字echarts多条折线图添加单位设置echarts线的样式echarts饼状图自定义legend的样式付费echarts去除坐标轴上的x和y轴国庆总结:echarts自定义颜色主题,保证你看的明明白白echarts饼图的配置 封装组件的注意点echarts之--柱状图-%显示ECharts 简介ECharts 安装ECharts 自定义构建ECharts 创建图表ECharts 图表组成ECharts 文本样式ECharts 区域样式ECharts 事件系统ECharts action 交互ECharts 数据异步加载ECharts 标题组件ECharts 提示框ECharts 图例组件ECharts 工具栏ECharts 数据缩放组件ECharts 极坐标系ECharts 地图坐标系ECharts 折线图ECharts 柱状图ECharts 饼图ECharts 散点图ECharts K 线图

ECharts 文本样式

ECharts 文本样式

在 ECharts 图表中除了核心的各式各样的图表,剩下的应该就是那些文本文字了,文字的描述也是直接关系到整个图表的意义,文字的样式有同样决定了图表的美观程度,优秀的图表类型选择加上合适的文本样式才能组成最漂亮的图表。这个小节我们就从各个方面去看一下如何对图表中的文本进行美化吧。

1. 简介

在 ECharts 的各个组件、图表中,充斥着许多与文本相关的配置,比如 title 组件的 textStylesubTextStyle 属性legend 组件的 textStyle 属性line 图表的 label 属性等等。可以说,但凡与文本有关的功能,都可以参考本文的配置说明。

2. 配置项

针对文本项,ECharts 提供了一套通用的配置属性,包含:

配置名 类型 认值 说明
color string #333 标题文字颜色
fontStyle string normal 标题文字字体风格,可选值: normalitalicoblique
fontWeight string | number normal 标题文字字体粗细度,与 css 的 font-weight 属性类似,可选值:normalboldbolderlighter,或数字 100、 200、 300 等
fontFamily string sans-serif 标题文字字体,与 css 的 font-family 属性类似,可选值:serifArialMicrosoft YaHei
fontSize number 12 标题文本大小
lineHeight number 文本行高
width number 文本宽度,一般不需要指定
height number 文本高度,一般不需要指定
textBorderColor string transparent 文本描边颜色,支持backgroundColor 颜色值
textBorderWidth number 0 文本描边宽度
textShadowColor string transparent 文本阴影色
textShadowBlur number 0 文本阴影长度
textShadowOffsetX number 0 文本阴影的水平偏移量
textShadowOffsetY number 0 文本阴影的垂直偏移量

3. 示例

3.1 fontFamily 配置

与 CSS 中的 font-family 相似,ECharts 的 fontFamily 属性同样支持浏览器中包含的所有字体类型,也同样可以设置为自定义字体。基于这种能力,可以实现在 ECharts 文本组件上勾画自定义图标,示例:

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<Meta charset="utf-8" />
		<Meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<Meta name="viewport" content="width=device-width,initial-scale=1.0" />
		<title>Echarts Example</title>
		<link href="//cdn.bootcss.com/font-awesome/5.11.2/css/all.min.css" rel="stylesheet" />
	</head>
	<body>
		<!-- 强制触发浏览器加载字体文件 -->
		<i class="fa fa-user" style="font-size: ;"></i>
		<div id="main" style="width: px;height: px"></div>

		<script src="//cdn.bootcss.com/echarts/4.5.0/echarts.common.js"></script>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));

			var option = {
				toolBox: {
					feature: {
						saveAsImage: {},
					},
				},
				title: {
					// 自定义字体需要使用 unicode 编码格式表示
					// 如本例中的 `\uf007`
					text: '字体测试 \uf007',
					textStyle: {
						fontSize: ,
						// 若字体名称中带有空格,需要使用 `"` 包围
						fontFamily: '"Font Awesome 5 Free"',
					},
				},
			};
			// 如果渲染时字体文件还没加载完,自定义字体会被显示为空
			// 所以这里需要加上延迟渲染
			setTimeout(() => {
				myChart.setoption(option);
			}, );
		</script>
	</body>
</html>

实例效果

编程之家

需要注意几个关键点:

  1. 对于字体图表,需要使用 unicode 格式表示,如上例中的 \uf007
  2. 自定义字体名称带有空格,名称需要使用 "' 包裹起来,如上例的 fontFamily: '"Font Awesome 5 Free"
  3. canvas 中的文本不具备自动刷新的能力,如果在渲染之前字体文件还没加载完成,则无法正确渲染自定义字体内容。所以在上例中,一需要使用 <i class="fa fa-user" style="font-size: 0;"></i> 触发浏览器加载字体文件;二需要在调用 setoption 处使用 setTimeout 实现延迟渲染。

3.2 文本描边

可通过 textBorderColortextBorderWidth 属性实现文字描边效果,示例:

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<Meta charset="utf-8" />
		<Meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<Meta name="viewport" content="width=device-width,initial-scale=1.0" />
		<title>Echarts Example</title>
	</head>
	<body>
		<div id="main" style="width: px;height: px"></div>

		<script src="//cdn.bootcss.com/echarts/4.5.0/echarts.common.js"></script>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));

			var option = {
				toolBox: {
					feature: {
						saveAsImage: {},
					},
				},
				title: {
					text: '字体测试\n第二行效果',
					left: '30%',
					top: '30%',
					textStyle: {
						fontSize: ,
						textBorderWidth: ,
						textBorderColor: '#ddd',
						lineHeight: ,
					},
				},
			};
			// 如果渲染时字体文件还没加载完,自定义字体会被显示为空
			// 所以这里需要加上延迟渲染
			setTimeout(() => {
				myChart.setoption(option);
			}, );
		</script>
	</body>
</html>

示例效果

编程之家

3.4 阴影效果

与 rect 类型的组件相似,文本组件也支持阴影效果,可通过 textShadowColortextShadowBlurtextShadowOffsetXtextShadowOffsetY 属性控制,示例:

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<Meta charset="utf-8" />
		<Meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<Meta name="viewport" content="width=device-width,initial-scale=1.0" />
		<title>Echarts Example</title>
	</head>
	<body>
		<div id="main" style="width: px;height: px"></div>

		<script src="//cdn.bootcss.com/echarts/4.5.0/echarts.common.js"></script>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));

			var option = {
				toolBox: {
					feature: {
						saveAsImage: {},
					},
				},
				title: {
					text: 'title shadow 测试',
					left: '30%',
					top: '30%',
					textStyle: {
						fontSize: ,
						textShadowColor: '#000',
						textShadowBlur: ,
						textShadowOffsetX: ,
						textShadowOffsetY: ,
					},
				},
			};
			myChart.setoption(option);
		</script>
	</body>
</html>

示例效果

编程之家

4. 小结

编程之家


本节主要介绍 ECharts 中各类文本样式的配置方法。文本样式是一种使用广泛,却不难理解的配置,各个项都能在 CSS 上找到对应的概念,所以不必花太多时间学习,需要用到的时候回过头来仔细比对各个配置属性即可。