F2图表柱状图添加文本标注

我用F2图表做了一个叠加的柱状图,用于显示基金的持仓总量和收益,柱状图默认是没有标记属性的,不想echarts可以用lable属性。所以必须用一个标注组件<TextGuide>,根据官方文档,代码如下:

javascript 复制代码
<Canvas pixel-ratio={2} style={{ width: '100%', height: '300px' }}>
  <Chart
	data={toRaw(positionDataWithEarnings)}
	coord={{
	  transposed: true,
	}}
  >
	<Axis field="type" />
	<Axis field="total" />
	{toRaw(positionDataWithEarnings).map((item) => {
	  const { total, name, per } = item;
	  return (
		<TextGuide
		  records={[item]}
		  content={`${name === '收益' ? total + '(' + per + ')' : total}`}
		  style={{
			fill:
			  name === '收益' ? (total > 0 ? 'red' : 'green') : '#000',
			fontSize: '18px',
		  }}
		  offsetX={name === '持仓' ? -5 : -60}
		  offsetY={-8}
		/>
	  );
	})}
	<Interval x="type" y="total" color="name" adjust="stack" />
  </Chart>
</Canvas>

这里需要一个map循环,生成每个柱子对应的文本标注,其中:

records:表示每一项数据

content:表示要显示的文字

style:文字样式,fill是颜色,fontSize是字体大小

offsetX:是距柱子x轴的偏移量

offsetY:是距柱子y轴的偏移量

我这个柱状图是水平柱状图,这个要用到Chart的一个坐标系的属性(coord),设置成转置(transposed),如下:

javascript 复制代码
coord={{
    transposed: true, // 图表转置
}}

最终的效果是这样,我将持仓数据放在了柱子顶部,将收益数据放在了柱子底部,由于转置后x和y轴交换,所以这里调整的是offsetX,给Y轴一个偏移量,避免文本盖到柱子上。

相关推荐
橘子编程5 分钟前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
王夏奇11 分钟前
python中的__all__ 具体用法
java·前端·python
叫我一声阿雷吧42 分钟前
JS 入门通关手册(45):浏览器渲染原理与重绘重排(性能优化核心,面试必考
javascript·前端面试·前端性能优化·浏览器渲染·浏览器渲染原理,重排重绘·reflow·repaint
大家的林语冰1 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong231 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
田八1 小时前
聊聊AI的发展史,AI的爆发并不是偶然
前端·人工智能·程序员
zhanghongbin011 小时前
AI 采集器:Claude Code、OpenAI、LiteLLM 监控
java·前端·人工智能
IT_陈寒1 小时前
Python的列表推导式里藏了个坑,差点让我加班到凌晨
前端·人工智能·后端
吴声子夜歌2 小时前
ES6——正则的扩展详解
前端·mysql·es6
天若有情6732 小时前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串