echarts_柱状图+漏斗图

news/2024/11/6 13:45:40/

目录

      • 柱状图(bar)
        • 需求
          • [1] 复制案例
          • [2] 修改类目轴方向
          • [3] 修改数据渲染方向
          • [4] 修改坐标轴文本样式
      • 漏斗图(funnel)
          • 漏斗图的形状

柱状图(bar)

需求

在这里插入图片描述
如上图,做一个横向柱状图,后端返回的数据是从小向大排列的数据,希望能够按照顺序进行展示。

[1] 复制案例
  • 复制一个Echarts官网案例,将数据替换为想要渲染的数据
    在这里插入图片描述
[2] 修改类目轴方向
  • [2] 将[1]图柱状图改为横向柱状图

    xAxis与yAxis是直角坐标轴x/y轴的配置项;

    在xAxis与yAxis配置项中都存在type属性,属性值有4个分别如下

    • category 类目轴 (x轴默认值)
    • value 数值轴 (y轴默认值)
    • time 时间轴
    • log 对数轴

    data属性是类目数据,若是(xAxis/yAxis)没有设置type属性,但是设置了axis.data则认为当前配置项的type为category

    示例
    在这里插入图片描述

[3] 修改数据渲染方向

在这里插入图片描述
从上图可以看出数据渲染方向是沿着y轴往上进行渲染,但是违背我的初衷,我希望用户能够看到数据的正想排列过程。

xAxis/yAXis配置项中存在inverse属性 -> 是否是反向坐标轴(数据是否反向渲染)

在这里插入图片描述
配置inverse属性为true就达到目的了。

[4] 修改坐标轴文本样式

axis.data是一个数组,存储类目数据。
数组的每个元素:String/Object

  • 若是不需要修改文本样式,则元素为String格式
  • 若是需要修改文本样式,则元素为Object格式

在这里插入图片描述
如上图,仅需要修改‘衬衫’的字体,那么data中第一个元素为Object类型,其余元素类型为String类型。

在本案例中需要将y轴坐标文本全部调整字体为16px,因此可以进行如下调整

const value =  ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
const data = value.map(item=>({value: item,textStyle:{fontSize:16,}
}))
option = {yAxis: {data,inverse:true},xAxis:{},series: [{data: [200, 180, 120, 80, 30, 10],type: 'bar'}]
}

漏斗图(funnel)

option = {series: [{type: 'funnel', // 图表类型left: '10%',top: 60,bottom: 60,width: '80%',min: 0, // value最小值max: 100, // value最大值minSize: '0%', // 最小值映射的宽度(最小宽度)maxSize: '100%', // 最大值映射块的宽度(最大宽度)// sort: 数据排列顺序 descending(默认)从大到小排列;ascending:从小到大排列;none:按照data(value属性)值排列sort: 'descending', // gap: 图表块与块之间的间距gap: 2,// label: 图表每块上的文本label: {show: true, // 是否显示文本(默认true)position: 'inside', //  文本显示的位置(默认块右侧)formatter: function(d){ // 文本内容,默认name属性return d.data.name + '  ' + d.data.num}},// 图表每个块的样式itemStyle: {// color:'red',   表示每个块都是红色,默认是在option.color中选取颜色borderColor: '#fff',borderWidth: 1},// 鼠标hover时块的样式emphasis: {// 文本样式label: {fontSize: 20}},// 显示数据data: [{ value: 60, name: 'Visit', num: 5000 },{ value: 40, name: 'Inquiry', num: 3200 },{ value: 20, name: 'Order', num: 10 },{ value: 80, name: 'Click' , num: 6800},{ value: 100, name: 'Show', num: 10000 }]}]
};
漏斗图的形状

在看案例时,发现图表是一个“三角形”的形状,但是在我们实际使用时会发现图表存在变形的情况
在这里插入图片描述

漏斗图的形状是通过data.value属性控制的,若是每个数据的data.value属性的递减/递增不是成比例的就会出线漏斗图三角形变形的情况。

若是想要图形一直是三角形,可以将value值做成递减,在data中添加另一个属性来表示真正的数值(注:若是后端的返回值不是按照顺序返回的,需要先排序!)


http://www.ppmy.cn/news/882766.html

相关文章

打造linux下bt、电驴、ftp一体服务器

打造个人专用bt、电驴、ftp一体服务器操作系统选择了Debian 4.0(etch),当服务器当然要用linux了,稳定嘛~ 下载地址: [urlhttp://debian.cn99.com/debian-cd/etch/debian-40r1-i386-netinst.iso]http://debian.cn99.com/debian-cd/etch/debi…

口语化讲某些软件如BT,电驴,向日葵等穿透内网原理

一般如果要访问或远程控制内网的电脑,都需要在路由器或网关服务器上做端口映射处理,但某些软件如BT,电驴,向日葵,teamviewer等无需做端口映射即可穿透内网远程通讯。一般宽带路由器对出站通讯(主动连接&…

线段树模板

线段数的查询和修改都是logn的。 struct node{int l,r;int v; }tr[N*4];//经验值*4void pushup(int u) {tr[u].vmax(tr[u<<1].v,tr[u<<11].v); } void built(int u,int l,int r) {tr[u]{l,r};if(lr) return;int midlr>>1; built(u<<1,l,mid);//建树时…

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中&#xff0c;集群最终会选举出一个Leader节点&#xff0c;而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息&#xff0c;还会处理客户端的请求&#xff0c;并将客户端的更…

暑假第七天打卡

离散&#xff1a; 主析取范式和主合取范式的应用&#xff1a; &#xff08;1&#xff09;求公式成真与成假赋值&#xff1a; 化为主析取范式后&#xff0c;下标化为二进制就是成真赋值&#xff0c;不在下标里的就是成假赋值 化为主合取范式后&#xff0c;下标化为二进制就是…

系统架构设计师 8:系统质量属性与架构评估

软件系统属性包括功能属性和质量属性&#xff0c;软件架构重点关注的是质量属性。为了精确、定量地表达系统的质量属性&#xff0c;通常会采用质量属性场景的方式进行描述。 在确定软件系统架构&#xff0c;精确描述质量属性场景后&#xff0c;就需要对系统架构进行评估。软件…

内存条频率4000MHZ,开启XMP技术内存读写速度前后对比图

测试环境&#xff1a;CPU为core i9-7900x 内存&#xff1a;双通道 4000MHZ 主板&#xff1a;MSI X299 Pro 未开启XMP的内存读写速度测试&#xff08;双通道 2*8GB&#xff09; 开启XMP后内存读写速度测试&#xff08;双通道2*8GB&#xff09; 开启XMP后单通道单内存条内存读取…

台风怎么看内存颗粒_【无趣】使用300多元的D4 16G内存是种什么体验

long long ago&#xff0c;我买到四根酷兽DDR4 2666的16G内存条。记得那时候还没有火灾&#xff0c;地区也没有大停电&#xff0c;内存也还是白菜价&#xff0c;那时这根16G内存仅199元&#xff0c;4根才只要800元而已。而三个月后的今天&#xff0c;这条内存已经涨到了339元一…