当前位置: 首页 > news >正文

echarts各种踩坑记录

echarts各种踩坑

文章目录

  • 1.图表面积没占满
  • 2 data想展示,除了显示在图表上外的附加数据
  • 3 设置最大gap间距分5行,最大显示100%(bar图,折线图)
  • 4 line的图 不要换行
  • 5 bar的图 需要hover后覆盖全部框显示淡淡灰色
  • 7 渐变背景色(虽然感觉可以更容易)
  • 8 line图的渐变
  • 9 折线图里,不连续的点也要连起来

1.图表面积没占满

这个非常头大,官方也不好好说明怎么办(还是我的阅读效率太低????)
如果是饼图,设置面积,面积越大越占满,默认是缩小的

 type: 'pie',
radius: ['90%'], 或者radius: ['65%', '90%'],

如果是bar或者radius,用grid,百分比就是空出来的宽度,而且一定要containLabel 包含标签的,不然显示不全标签,啊

grid: {top: '15%',bottom: '15%',left: '0%',right: '0%',containLabel: true,},

2 data想展示,除了显示在图表上外的附加数据

一般来说,data是直接给予一个数组,都是数组,但是实际上也可以展示其他的数据,这主要是给tooltip用的,
比如value: xxx, number: xxx 直接赋值,展示的是展示出来value,其他的其他自会处理

 const newItem = aaaaaaa?.map((item) => {return {value: item.exist? item.aa? item.aa * 100: 0: undefined,...item,};});return newItem;

可以直接往外面来个getdata,返回具体的值,这里在tooltip这里就比较麻烦,需要定义好类型。

     formatter: function (params) {const data = params as CallbackDataParams;const _data = data.data as 你自己定义的那个item类型;return `

3 设置最大gap间距分5行,最大显示100%(bar图,折线图)

注意xAxis必须得和y一起用,不然就报错

xAxis: {type: 'category',data:[1,2,3,4]},yAxis: {type: 'value',axisLabel: {formatter: '{value}%',},max: 100,splitNumber: 5,},

4 line的图 不要换行

xAxis: {type: 'category',data: xAxisData(),axisLabel: {interval: 0,},},

5 bar的图 需要hover后覆盖全部框显示淡淡灰色

 tooltip: {borderWidth: 0,borderColor: 'transparent',trigger: 'axis',showDelay: 0, // 显示延迟,添加显示延迟可以避免频繁切换,单位mspadding: 0,axisPointer: {type: 'shadow',crossStyle: {width: 30,},shadowStyle: {color: 'rgba(0, 0, 0, 0.06)',},},

7 渐变背景色(虽然感觉可以更容易)

一定要注意,这个color要在serires的itemstyle的color里面,否则没法生效的啊啊啊啊啊啊

  series: {data: data,barWidth: 20,type: 'bar',itemStyle: {borderWidth: 2,color: {type: 'linear',x: 1,y: 0,x2: 0,y2: 1,colorStops: [{ offset: 0, color: #111111' },{ offset: 1, color: #222222' },],},},},

8 line图的渐变

area时面积,item是小圆点,line是连线。
areaStyle: {
origin: ‘start’,
color: {
type: ‘linear’,
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{ offset: 0, color: ‘rgba(212, 56, 13, 0.15)’ },
{ offset: 1, color: ‘rgba(212, 56, 13, 0)’ },
],
},
},
itemStyle: {
borderWidth: 2,
borderColor: ‘rgba(237, 111, 46, 1)’,
color: ‘transparent’,
},
lineStyle: {
color: ‘rgba(237, 111, 46, 1)’,
},

9 折线图里,不连续的点也要连起来

connectNulls: true,
需要在series那一栏里。

PS: echarts一定一定要按需引入, 官方文档里有


export type EChartsOption = echarts.ComposeOption<| TitleComponentOption| TooltipComponentOption| LegendComponentOption| PieSeriesOption| LinesSeriesOption| LineSeriesOption| BarSeriesOption
>;
const EchartsDiv = ({ option }: { option: EChartsOption }) => {echarts.use([TitleComponent,TooltipComponent,LegendComponent,PieChart,LineChart,BarChart,CanvasRenderer,LabelLayout,GridComponent,UniversalTransition,]);const PieRef = useRef<HTMLDivElement | null>(null);useEffect(() => {const myChart = echarts.init(PieRef.current);myChart?.setOption(option);return () => {myChart.dispose();};}, [option.series]);return <div className="w-full h-full" ref={PieRef}></div>;
};export default EchartsDiv;

其他替代方案
chart.js 感觉更友好一点?????

http://www.xdnf.cn/news/592147.html

相关文章:

  • 【Python中的Socket套接字详解】网络通信的核心基石
  • 右键长按超过 200ms, 高亮选中的typora内容, win+a换颜色
  • 黑马Java基础笔记-14
  • 2025长三角数学建模ABC题赛题已出!速拿
  • Docker 推出强化镜像以增强容器安全性
  • 关于初学者对大模型的一些概念的理解
  • DAY8字典的简单介绍
  • matIo库及.mat数据格式介绍
  • CSS回顾
  • 【Leetcode 每日一题】3362. 零数组变换 III
  • 游戏如何应对反编译工具dnspy
  • “十四五”收官年:电能质量治理的数字化突围指南
  • 写作--简单句重难点
  • 求树的重心
  • 关于fastjson与fastjson2中parseObject操作的区别
  • Python 实现Web 请求与响应
  • 背包问题(1)
  • Java RestTemplate 通用请求工具类
  • 2024游戏安全白皮书:对抗激烈!PC游戏外挂功能数增长超149%,超85%移动外挂为定制挂(附获取方式)
  • 基于阿里云DashScope API构建智能对话指南
  • 写一个计划任务脚本(定时执行)
  • PostgreSQL跨数据库表字段值复制实战经验分
  • 对于从事FPGA行业的人来说,需要掌握哪些知识
  • ant design 日历组件a-calendar如何汉化
  • 二分算法的补充说明
  • 表格单元格多行文本溢出写法
  • 基于SpringBoot的美食分享平台设计与开发(Vue MySQL)
  • 高效数据库管理新体验:SQLynx 3.7 功能解析与团队协作场景实践
  • 06算法学习_58. 区间和
  • PrimeVue菜单组件深度解析:构建高效能的Web导航系统