首页 > 其他分享 >echarts 图表+表格实现上图下表

echarts 图表+表格实现上图下表

时间:2024-04-27 16:23:21浏览次数:23  
标签:count 上图 title type 下表 res null data echarts

效果图:

1、结构布局

<div id="graphQuantityStatistics"></div> 2、配置图表 data () {         return {             option:{                 legend: [                     {                         left: 0,                         bottom: -5,                         width: 80,                         orient: "vertical",                         itemGap: 0,                         itemWidth:6,                         itemHeight:6,                         textStyle: {                             width: 80,                             height: 25,                             lineHeight: 56,                             overflow: "truncate"                         }                     },                     {                         orient: 'vertical',                         right:0,                         bottom:'50%',                         itemWidth:6,                         itemHeight:6,                     }                 ],                 grid: {                     left: 80,                     right: 60,                     bottom: 75                 },                 backgroundColor: '#fff',                 tooltip: {                     trigger: 'axis',                 },                 xAxis: [                     {                         type: 'category',                         data: [],                         axisTick: {                             length: 75, // 竖线的长度                         },                         axisLine: {                             lineStyle: {                                 type: 'solid',                                 /*color: 'blue'*/ // 更改坐标轴颜色                             }                         }                     }                 ],                 yAxis: {                     type: 'value',                 },                 graphic: [], //table                 series: [{                     data: [],                     name: "数据1",                     type: 'bar',                     yAxisIndex: 0,                     label: {                         show: true, position: 'top', formatter: function (params) {                             if (params.value > 0) {                                 return params.value;                             } else {                                 return '';                             }                         }                     },                     barMaxWidth: 40, // 最大宽度                     itemStyle:{                         color:'#5b9bd5'                     },                 }, {                     data: [],                     name: '数据2',                     type: 'bar',                     label: {                         show: true, position: 'top', formatter: function (params) {                             if (params.value > 0) {                                 return params.value;                             } else {                                 return '';                             }                         }                     },                     barMaxWidth: 40, // 最大宽度                     itemStyle:{                         color:'#ed7d31'                     },                 }]             },             showEchartData:false         };     }, 3、初始化图表 initChartCol(){             let that = this;             let lineList = this.getTableLine(4);//要渲染几条线写几             lineList.push({                 type: 'line',                 bottom: 0,                 left: 0,                 style: {                     fill: '#fff',                     stroke: '#000'                 },                 shape: {                     x1: 0,                     y1: 0,                     x2: 0,                     y2: 50                 }             })             let x_api = “/getEchartsData.json”;             that.http.get(x_api).then((res) => {                 let time = [];                 let ontologyStatistics = [];                 let graphStatistics = [];                 if(res.data && ((res.data.ontologyStatistics && res.data.ontologyStatistics.length>0) || (res.data.graphStatistics && res.data.graphStatistics.length>0))){                     if(res.data.ontologyStatistics && res.data.ontologyStatistics.length>0){                         res.data.ontologyStatistics.map((item)=>{                             time.push(item.title);                             ontologyStatistics.push(item.count);                         })                     }                     if(res.data.graphStatistics && res.data.graphStatistics.length>0){                         res.data.graphStatistics.map((item)=>{                             if(time.length == 0){                                 time.push(item.title);                             }                             graphStatistics.push(item.count);                         })                     }                     that.option.graphic = lineList;                     that.option.xAxis[0].data = time;                     that.option.series[0].data = ontologyStatistics;                     that.option.series[1].data = graphStatistics;                     that.option.xAxis[0].axisLabel = {                         margin: 0,                         interval: 0,                         axisPointer: {                             type: 'shadow'                         },                         formatter: function (value, index) {                             var indexNum = 0                             for (var i = 0; i < time.length; i++) {                                 if (value === time[i]) {                                     indexNum = i                                 }                             }                             return ('{table|' + value + '}\n{table|' + ((ontologyStatistics.length > 0)?ontologyStatistics[indexNum]:0) + '}\n{table|' + (( graphStatistics.length > 0)?graphStatistics[indexNum]:0) + '}\n{table|' + '}')                         },                         rich: {                             table: {                                 height: 25,                                 align: 'center',                                 verticalAlign: 'middle'                             }                         }                     };                     that.initEchart();                 }             })             .catch((err) => {                 that.$message.error(err.message)             })         },         getTableLine(num){             var list = [];             var bottom = 75;//底部位置根据自己要求调整,我的理解是这的值应该设置 grid: { left: 60, right: 60, bottom: 90 }是90减30的一个值,             var height = 25;             for (var i = 1; i < num; i++) {                 list.push({                     type: 'line',                     bottom: bottom - i * height,                     right: 60,                     style: {                         fill: '#fff',                         stroke: '#000'                     },                     shape: {                         x1: 0,                         y1: 0,                         x2: 9999,                         y2: 0                     }                 });             }             return list;         },         initEchart() {             // 基于准备好的dom,初始化echarts实例             let chartDom = document.getElementById('graphQuantityStatistics');             let myChart = echarts.init(chartDom);             // 绘制图表             myChart.setOption(this.option,true);             window.addEventListener("resize", () => {                 myChart.resize();             });         }, 4、接口数据

{
  "code": "0",
  "data": {
    "graphStatistics": [
      {
        "count": 0,
        "title": "2023年10月",
        "type": null
      },
      {
        "count": 0,
        "title": "2023年11月",
        "type": null
      },
      {
        "count": 0,
        "title": "2023年12月",
        "type": null
      },
      {
        "count": 4,
        "title": "2024年01月",
        "type": null
      },
      {
        "count": 1,
        "title": "2024年02月",
        "type": null
      },
      {
        "count": 4,
        "title": "2024年03月",
        "type": null
      },
      {
        "count": 3,
        "title": "2024年04月",
        "type": null
      }
    ],
    "ontologyStatistics": [
      {
        "count": 0,
        "title": "2023年10月",
        "type": null
      },
      {
        "count": 0,
        "title": "2023年11月",
        "type": null
      },
      {
        "count": 0,
        "title": "2023年12月",
        "type": null
      },
      {
        "count": 8,
        "title": "2024年01月",
        "type": null
      },
      {
        "count": 1,
        "title": "2024年02月",
        "type": null
      },
      {
        "count": 12,
        "title": "2024年03月",
        "type": null
      },
      {
        "count": 3,
        "title": "2024年04月",
        "type": null
      }
    ]
  },
  "message": "success"
}

标签:count,上图,title,type,下表,res,null,data,echarts
From: https://www.cnblogs.com/wangyan0926/p/18162159

相关文章

  • Echarts多条折线图line显示数值和真实数值不一致
    问题图: 折线图数据显示不匹配原因:在line的配置项中加了"stack"这一项配置,stack为‘Total’或‘总量’的情况下,y轴不是真实的value的值,而是value的总量值。既后续折现的数值在前数值的基础上相加.       官网对stack的描述:数据堆叠,同个类目轴上系列配置相同的st......
  • vue3使用echarts的tree,自己写事件进行分页
    vue3使用echarts的tree,自己写事件进行分页  先到npmjs官网查看当前使用最多的版本https://www.npmjs.com/package/echarts 看了下5.5.0用的最多[email protected] 以下的demo(“@/flare”是后面的flare.json数据)<template><divid="chart-container"></div......
  • echarts折线图使用dataZoom,切换数据时渲染异常,出现竖线bug
     今天做项目遇到一个省份过多时,要加滚动条的需求。但是切换数据的时候,出现上图所出现的问题。经查资料,发现可以设置一个属性来解决这个问题。    filterMode:'empty' dataZoom:{     show:this.xiaonengXData.length>12?true:false,//为true滚动条......
  • ECharts海量数据渲染解决卡顿的4种方式
    场景周五进行需求评审的时候;出现了一个图表,本身一个图表本没有什么稀奇的;可是产品经理在图表的上的备注,让我觉得这个事情并不简单;那个图表的时间跨度可以是月,年,而且时间间隔很短;这让我意识到事情并不是想的那样简单;然后经过简单的询问:如果选择的范围是年;数据可能会上万;我......
  • pyecharts显示地图,并且渲染
    frompyecharts.chartsimportMapfrompyechartsimportoptionsasoptsfrompyecharts.globalsimportThemeTypedata=[('山东省',99),('上海市',199),('湖南省',299),('台湾省',399),('广东省',499)]......
  • echarts柱状图 实现点击每个柱状图跳转到新页面
    myChart.setOption(option);myChart.getZr().on('click',params=>{//规定代码块↓↓constpointInPixel=[params.offsetX,params.offsetY];if(myChart.containPixel('......
  • WPF livecharts
    1.Installlivecharts.wpfinnuget2.usercontrol//xaml<UserControlx:Class="WpfApp64.Bar"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx......
  • 添加行政代码,pyecharts点击省地图,下钻到该省并且显示数据
    1.pyecharts点击省地图,下钻到该省并且显示数据容易出现的问题:1.那就是数据怎么放到图中辣。。摸索挺久的。2.特别注意在放数据到地图中的时候,数值记得转化,卡好久没出数据就是以为没有强制转为数字类型入转为int(xxxx)3.给地图放入数据规范为北京市,天津市,广东省,香港特别行政区......
  • Pyecharts制作动态GDP柱状图
    学习使用pyecharts制作动态柱状图使用csv模块进行csv数据文件处理importcsvfrompyecharts.chartsimportBar,Timelinefrompyecharts.optionsimport*frompyecharts.globalsimportThemeTypedefdealCSVFile():"""读取处理csv数据文件:retu......
  • 离线使用Pyecharts制作可视化图表——方法1:启动本地 js 服务
    在离线使用Pyechart进行可视化数据绘图的时候,会有生成的html网页打不开,或者是网页不出图像,是一个空白页面的问题出现,搜索发现其主要原因是:由于PyEcharts在升级到1.x版本后,将原来HTML网页中使用到的很多js文件换为了在线获取的方式,例如打开我本地生成的bar.html示例文件,就会发......