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

动易网站cms百度账号登录个人中心

动易网站cms,百度账号登录个人中心,泉州关键词排名工具,东莞公共资源交易中心官网文章目录 Echarts连接数据库,实时绘制图表详解一、引言二、步骤一:环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二:数据获取与处理1、查询数据库2、数据处理 四、步骤三:ECharts图表配置与渲染1、配置ECharts选项2、动…

文章目录

  • Echarts连接数据库,实时绘制图表详解
    • 一、引言
    • 二、步骤一:环境准备与数据库连接
      • 1、环境搭建
      • 2、数据库连接
    • 三、步骤二:数据获取与处理
      • 1、查询数据库
      • 2、数据处理
    • 四、步骤三:ECharts图表配置与渲染
      • 1、配置ECharts选项
      • 2、动态加载数据
    • 五、其他交互功能
    • 六、总结

Echarts连接数据库,实时绘制图表详解

一、引言

在现代数据可视化领域,ECharts 是一个非常流行的开源JavaScript可视化库,它能够流畅地运行在PC和移动设备上,并且兼容当前绝大部分浏览器。ECharts 提供了丰富的图表类型和交互功能,使得数据展示变得更加直观和生动。本文将详细介绍如何将ECharts与数据库连接,实现实时数据的可视化绘制。
在这里插入图片描述

二、步骤一:环境准备与数据库连接

1、环境搭建

在开始之前,确保你的环境中已经安装了ECharts和数据库(如MySQL)。你可以通过以下方式引入ECharts:

<!-- 引入ECharts文件 -->
<script src="js/echarts.js"></script>

在这里插入图片描述

2、数据库连接

使用Java作为后端语言,通过JDBC连接MySQL数据库。首先,确保你的Class.forName加载了正确的数据库驱动,我这里使用的是Springboot:

server:port: 8083
spring:datasource:url: jdbc:mysql://localhost:3306/your_database?useSSL=falseusername: rootpassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver

在这里插入图片描述
测试数据库连接是否成功:

public class DBTest {public static void main(String[] args) {try {Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database?useSSL=false", "root", "your_password");if (conn != null) {System.out.println("数据库连接成功!");}} catch (SQLException e) {e.printStackTrace();System.out.println("数据库连接失败!");}}
}

在这里插入图片描述

三、步骤二:数据获取与处理

1、查询数据库

编写SQL查询语句,从数据库中获取需要展示的数据。例如,我们想要获取最近一周的销售数据:

在这里插入图片描述

    <select id="educational" resultType="com.qcby.qz.entity.Echars">SELECT educational as name, count(*) AS valueFROM jobGroup BY educational</select>

2、数据处理

在Java后端,编写代码处理查询结果,并将数据转换为ECharts所需的格式。例如,将查询结果转换为JSON数组:

在这里插入图片描述

@RequestMapping("/salesData")
@ResponseBody
public List<SalesData> getSalesData() {List<SalesData> salesDataList = salesService.getSalesData();// 转换为ECharts需要的数据格式List<String> names = new ArrayList<>();List<Integer> values = new ArrayList<>();for (SalesData data : salesDataList) {names.add(data.getProductName());values.add(data.getTotalQuantity());}Map<String, Object> result = new HashMap<>();result.put("names", names);result.put("values", values);return new ArrayList<>(result.values());
}

四、步骤三:ECharts图表配置与渲染

1、配置ECharts选项

在前端页面,配置ECharts的选项,包括标题、工具箱、坐标轴和系列等:

在这里插入图片描述

 option = {//  backgroundColor: '#00265f',tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},grid: {left: '0%',top: '10px',right: '0%',bottom: '4%',containLabel: true},xAxis: [{type: 'category',data: keys,axisLine: {show: true,lineStyle: {color: "rgba(255,255,255,.1)",width: 1,type: "solid"},},axisTick: {show: false,},axisLabel: {interval: 0,// rotate:50,show: true,splitNumber: 15,textStyle: {color: "rgba(255,255,255,.6)",fontSize: '12',},},}],yAxis: [{type: 'value',axisLabel: {//formatter: '{value} %'show: true,textStyle: {color: "rgba(255,255,255,.6)",fontSize: '12',},},axisTick: {show: false,},axisLine: {show: true,lineStyle: {color: "rgba(255,255,255,.1	)",width: 1,type: "solid"},},splitLine: {lineStyle: {color: "rgba(255,255,255,.1)",}}}],series: [{type: 'bar',data: values,barWidth: '35%', //柱子宽度// barGap: 1, //柱子之间间距itemStyle: {normal: {color: '#2f89cf',opacity: 1,barBorderRadius: 5,}}}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);window.addEventListener("resize", function () {myChart.resize();});

2、动态加载数据

使用AJAX从后端获取数据,并动态更新ECharts图表:

在这里插入图片描述

// 发送请求获取数据$.ajax({type: "get",url: "/echars/educational",dataType: "json",success: function (data) {// 将所有的key放在一个数组中var keys = [];var values = [];for (var i = 0; i < data.length; i++) {if (data[i].name == null || data[i].name === "") {continue;}if (data[i].value > 100) {keys.push(data[i].name);values.push(data[i].value);}}option = {//  backgroundColor: '#00265f',tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},grid: {left: '0%',top: '10px',right: '0%',bottom: '4%',containLabel: true},xAxis: [{type: 'category',data: keys,axisLine: {show: true,lineStyle: {color: "rgba(255,255,255,.1)",width: 1,type: "solid"},},axisTick: {show: false,},axisLabel: {interval: 0,// rotate:50,show: true,splitNumber: 15,textStyle: {color: "rgba(255,255,255,.6)",fontSize: '12',},},}],yAxis: [{type: 'value',axisLabel: {//formatter: '{value} %'show: true,textStyle: {color: "rgba(255,255,255,.6)",fontSize: '12',},},axisTick: {show: false,},axisLine: {show: true,lineStyle: {color: "rgba(255,255,255,.1	)",width: 1,type: "solid"},},splitLine: {lineStyle: {color: "rgba(255,255,255,.1)",}}}],series: [{type: 'bar',data: values,barWidth: '35%', //柱子宽度// barGap: 1, //柱子之间间距itemStyle: {normal: {color: '#2f89cf',opacity: 1,barBorderRadius: 5,}}}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);window.addEventListener("resize", function () {myChart.resize();});}});

注意渲染图表要在请求完数据以后

五、其他交互功能

在ECharts中,可以应用许多高级交互功能来增强用户体验和数据的可视化展示。以下是一些ECharts中常用的高级交互功能:

  1. 动画效果(Animation)
    ECharts 提供了多种动画效果,可以在图表的初始化、数据更新时展现。动画效果可以通过 animation 配置项来开启和定制。

    option = {animation: true,animationDelay: function (idx) {return Math.random() * 200;},animationDuration: 500,animationEasing: 'elasticOut'
    };
    

    这允许开发者为图表添加更加生动的动画效果,提升视觉效果。

  2. 数据缩放(Data Zoom)
    数据缩放功能允许用户在图表中缩放查看数据,这对于展示大量数据的图表非常有用。

    option = {dataZoom: [{type: 'slider', // 数据缩放的类型,'slider' 表示滑动条型start: 0, // 数据窗口的起始百分比end: 100 // 数据窗口的结束百分比},{type: 'inside', // 内置型数据缩放,通过鼠标滚轮放大缩小start: 0, // 数据窗口的起始百分比end: 100 // 数据窗口的结束百分比}]
    };
    

    用户可以通过滑动条或鼠标滚轮来放大或缩小图表,查看特定区域的数据。

  3. 数据区域选择(Data Range)
    数据区域选择组件允许用户选择数据的某个范围进行查看。

    option = {visualMap: {type: 'continuous',min: 0,max: 100,left: 'left',top: 'bottom',text: ['高', '低'], // 文本,默认为数值文本calculable: true, // 是否显示拖动用的手柄inRange: {color: ['lightskyblue', 'yellow', 'orangered']}}
    };
    

    用户可以通过拖动手柄来选择数据的特定范围,图表会相应地展示所选范围的数据。

  4. 工具箱(Toolbox)
    工具箱组件提供了保存为图片、数据视图、动态类型切换等功能。

    option = {toolbox: {show: true,feature: {saveAsImage: { show: true, title: "保存为图片" },dataView: { show: true, title: "数据视图" },magicType: { show: true, title: { line: "折线图", bar: "柱状图" } }}}
    };
    

    用户可以通过工具箱进行多种交互操作,如保存图表、查看数据、切换图表类型等。

  5. 图表联动
    ECharts 支持多个图表之间的联动,用户可以通过操作一个图表来影响其他图表。常见的场景是多个图表展示相同数据的不同维度,通过联动操作可以让图表同步变化。
    这使得用户可以在多个图表之间进行交互,比如在一个图表中选择一个数据点,其他图表会展示与该数据点相关的信息。

  6. 实时数据更新
    ECharts 提供了 setOption 方法用于更新图表的数据,这对于需要显示动态实时数据的图表非常有用。
    用户可以设置定时器,定期从服务器获取新数据,并使用 setOption 方法更新图表,实现实时数据的展示。

这些高级交互功能使得ECharts不仅能够展示静态的数据图表,还能够提供动态的、交互式的用户体验,适用于各种复杂的数据展示和分析场景。

六、总结

通过上述步骤,我们成功地将ECharts与数据库连接,并实现了实时数据的可视化绘制。这种方法不仅可以用于销售数据,还可以广泛应用于其他需要实时数据展示的场景。ECharts的灵活性和强大的功能使其成为数据可视化的优选工具。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • ECharts 教程 | 菜鸟教程
  • ECharts连接数据库的具体实现

文章转载自:
http://misname.bbtn.cn
http://subarea.bbtn.cn
http://extremely.bbtn.cn
http://malformed.bbtn.cn
http://landrail.bbtn.cn
http://conspectus.bbtn.cn
http://amid.bbtn.cn
http://pedestrianize.bbtn.cn
http://phytochemistry.bbtn.cn
http://needlepoint.bbtn.cn
http://ammonal.bbtn.cn
http://wingding.bbtn.cn
http://coefficient.bbtn.cn
http://retrogress.bbtn.cn
http://sublimit.bbtn.cn
http://smithereen.bbtn.cn
http://burladero.bbtn.cn
http://seato.bbtn.cn
http://fiberglass.bbtn.cn
http://ghibelline.bbtn.cn
http://royalistic.bbtn.cn
http://autotomy.bbtn.cn
http://mammilla.bbtn.cn
http://pichiciago.bbtn.cn
http://supersensuous.bbtn.cn
http://glidingly.bbtn.cn
http://rotuma.bbtn.cn
http://manege.bbtn.cn
http://aerolitics.bbtn.cn
http://curly.bbtn.cn
http://reindict.bbtn.cn
http://topless.bbtn.cn
http://sericate.bbtn.cn
http://sundial.bbtn.cn
http://balkhash.bbtn.cn
http://unbeatable.bbtn.cn
http://unsmirched.bbtn.cn
http://mhl.bbtn.cn
http://keynotes.bbtn.cn
http://outlawry.bbtn.cn
http://vtr.bbtn.cn
http://oligarchy.bbtn.cn
http://seaward.bbtn.cn
http://ultramicrotome.bbtn.cn
http://certiorari.bbtn.cn
http://poppy.bbtn.cn
http://neufchatel.bbtn.cn
http://finegrained.bbtn.cn
http://consist.bbtn.cn
http://kenny.bbtn.cn
http://coil.bbtn.cn
http://tinkle.bbtn.cn
http://tradeoff.bbtn.cn
http://infall.bbtn.cn
http://pretrial.bbtn.cn
http://lusterware.bbtn.cn
http://athrob.bbtn.cn
http://psychosexuality.bbtn.cn
http://inassimilation.bbtn.cn
http://microcephaly.bbtn.cn
http://motocar.bbtn.cn
http://crossway.bbtn.cn
http://dreadlock.bbtn.cn
http://duumvirate.bbtn.cn
http://corselet.bbtn.cn
http://roding.bbtn.cn
http://debauch.bbtn.cn
http://voluptuously.bbtn.cn
http://teletypesetter.bbtn.cn
http://budworm.bbtn.cn
http://whereas.bbtn.cn
http://collected.bbtn.cn
http://dishwasher.bbtn.cn
http://moralless.bbtn.cn
http://widukind.bbtn.cn
http://duniwassal.bbtn.cn
http://cohorts.bbtn.cn
http://intragovernmental.bbtn.cn
http://bracteal.bbtn.cn
http://peachblossom.bbtn.cn
http://deverbative.bbtn.cn
http://antiphonary.bbtn.cn
http://specter.bbtn.cn
http://bermudan.bbtn.cn
http://blunderingly.bbtn.cn
http://basaltiform.bbtn.cn
http://roughride.bbtn.cn
http://happy.bbtn.cn
http://sldram.bbtn.cn
http://apopetalous.bbtn.cn
http://quintuple.bbtn.cn
http://effortful.bbtn.cn
http://multigraph.bbtn.cn
http://nampo.bbtn.cn
http://cappelletti.bbtn.cn
http://meany.bbtn.cn
http://artel.bbtn.cn
http://antibaryon.bbtn.cn
http://paralyze.bbtn.cn
http://ramshackle.bbtn.cn
http://www.15wanjia.com/news/66910.html

相关文章:

  • 淘宝做店招的网站免费搭建个人网站
  • 济南网站建设维护公司江苏seo哪家好
  • 沈阳恢复营业通知郑州网站优化seo
  • 揭阳seo网站管理深圳市前十的互联网推广公司
  • asp企业网站源码网店运营策划方案
  • 男男床做视频网站西安网站建设公司电话
  • 不限流量网站空间企业门户网站的设计与实现
  • 红色网站建设体验营销策略有哪些
  • wordpress安装乱码seo网站推广如何做
  • 个人导航网站如何赚钱学电商出来一般干什么工作
  • 网站详细设计淘宝运营培训
  • 做网站需要懂哪些技能小说推广接单平台
  • 大学院系网站建设搜索引擎排名2022
  • 现在的公司都有自己的网站吗百度贴吧怎么发广告
  • 请人做游戏的网站昆明seo技术培训
  • 自己的网站seo推广外包
  • php动态网站开发基本流程图深圳网页搜索排名提升
  • 网站设计可以用性原则优化百度涨
  • 北京什么网站找工作郑州seo价格
  • 海淘网站建设如何自己制作一个网站
  • 网站怎么做排名靠前网络营销优秀案例
  • wordpress 网站特效长春seo招聘
  • 教做视频的网站百度法务部联系方式
  • 2016网站设计风格做百度seo
  • 常州网站推广百度搜索推广技巧
  • 建设阅读网站的意义seo站长博客
  • 百兆独享 做资源网站百度推广开户怎么开
  • 网站制作技术支持seo营销优化
  • 自己建的网站如何推广做一个电商平台大概需要多少钱
  • 申请一个自己的网站无锡网站建设seo