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

P6 优化篇 - 数据折线图可视化步骤

  1. 增加新页面, 则需要在 page.json里面增加页面信息

    image-20240412221711965

2.添加目录, 和路径

image-20240412221752552
  1. 同时也要添加目录了 , 新建目录LineChart , 添加文件LineChart.vue
image-20240412221825437

4.LineChart.vue 直接复制黏贴

<template><view class="container"><!-- 图表显示区域 --><view class="charts-box"><!-- qiun-data-charts 组件用于显示类型为line的折线图,传入的数据包括图表选项opts和图表数据chartData --><qiun-data-charts type="line" :opts="opts" :chartData="chartData" /></view></view>
</template><script>export default {data() {return {// 温度和湿度数据temp: '',humi: '',// 图表数据对象,包含时间轴(categories)和数据系列(series)chartData: {categories: [], // 时间轴,用于x轴显示series: [{ // 数据系列name: '温度',data: [] // 温度数据数组},{name: '湿度',data: [] // 湿度数据数组}]},// 图表选项opts: {color: ["#1890FF", "#91CB74"], // 系列颜色padding: [15, 10, 0, 15], // 图表内边距enableScroll: false, // 禁用滚动legend: {}, // 图例配置xAxis: {disableGrid: true, // 禁用网格线rotateLabel: true, // 旋转标签},yAxis: {gridType: "dash", // 网格线类型为虚线dashLength: 2 // 虚线段长},extra: {line: {type: "straight", // 线型为直线width: 2, // 线宽activeType: "hollow" // 激活点类型为空心}}},// 认证令牌token: '',}},onLoad(options) {// 页面加载时从本地存储获取认证令牌this.token = uni.getStorageSync('token');},onShow() {// 页面显示时获取设备数据,并设置2秒定时刷新数据this.fetchDevData();setInterval(() => {this.fetchDevData();}, 2000);},methods: {// 获取设备数据的方法fetchDevData() {uni.request({url: 'https://iot-api.heclouds.com/thingmodel/query-device-property', // 示例接口地址method: 'GET',data: {product_id:'43vX0O55iC',device_name:'d1'},header: {'authorization': this.token // 使用认证令牌},success: (res) => {let now = new Date();let hours = now.getHours().toString().padStart(2, '0');let minutes = now.getMinutes().toString().padStart(2, '0');let seconds = now.getSeconds().toString().padStart(2, '0');let currentTime = `${hours}:${minutes}:${seconds}`;// 更新温度和湿度数据this.temp = res.data.data[2].value;this.humi = res.data.data[0].value;// 限制数据点数量,避免数据过多if (this.chartData.categories.length >= 10) {this.chartData.categories.shift();this.chartData.series[0].data.shift();this.chartData.series[1].data.shift();}// 添加新的数据点this.chartData.categories.push(currentTime);this.chartData.series[0].data.push(this.temp);this.chartData.series[1].data.push(this.humi);// 触发图表更新this.chartData = {...this.chartData};}});},}}
</script><style>.container {display: flex;flex-direction: column;}.charts-box {width: 100%;height: 300px;/* 设置图表容器的高度 */}
</style>
  1. 同时因为 4. 里面引入了 图表, 所以我们也要在main.js

    里面引入

    import qiunDataChartsVue from './uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue'
    
    Vue.component('qiun-data-charts', qiunDataChartsVue)
    
image-20240412222204008
  1. 到了图表页面, 我们还有引入库, 把这个压缩包解压即可

  2. 在index.vue里面去调用图表

image-20240412222634778
  1. 方法里面调用这个, 记得url路径换成图表vue的
            // 跳转到折线图页面的方法goLineChart() {// 将认证令牌存储在本地,供其他页面使用uni.setStorageSync('token', this.token);// 页面跳转uni.navigateTo({url:'/pages/LineChart/LineChart'});},

image-20240412222703517

8.图标vue里面的 id和name要改成自己的

image-20240412224541653

9.LineChart.vue里面的图表数据, 要自己对照:

image-20240412224932894

10.然后运行,其余可以自行修改

http://www.lryc.cn/news/407442.html

相关文章:

  • 优选算法之二分查找(上)
  • JavaScript(16)——定时器-间歇函数
  • VUE中的重点*
  • rabbitmq生产与消费
  • spring-boot3.x整合Swagger 3 (OpenAPI 3) +knife4j
  • SM2隐式证书用户公私钥生成python代码实现
  • IEC104转MQTT网关快速实现了IEC104到MQTT的转换和数据交互
  • 【OpenCV C++20 学习笔记】调节图片对比度和亮度(像素变换)
  • web UI自动化测试 浏览器模式设置
  • OpenCV图像滤波(1)双边滤波函数bilateralFilter的使用
  • 前端开发使用Big.js精算避免误差
  • 在 Ubuntu 22.04/20.04 安装 CVAT 和 SAM 指南
  • 【SpringCloud】 微服务分布式环境下的事务问题,seata大合集
  • vite5+vue3开发阅读APP实战笔记20240725
  • Intel任命Micron技术开发主管领导Intel Foundry制造运营
  • 苹果发布iOS 18 Beta 4,新增CarPlay 壁纸等多项功能改进
  • 谷粒商城实战笔记-50-51-商品分类的删除
  • vue3+g2plot实现词云图
  • Golang | Leetcode Golang题解之第273题整数转换英文表示
  • 使用C#手搓Word插件
  • WordPress主题追格企业官网主题免费开源版V1.1.6
  • uniapp引入自定义图标
  • pytorch-scheduler(调度器)
  • 防火墙与入侵检测系统(IDS/IPS)在现代网络安全中的关键角色
  • Python 之 os、open、json、pickle 模块的“疯狂”探险记
  • CTF-Web习题:2019强网杯 UPLOAD
  • Unity环境渲染与反射探针的深入探索
  • vue3 父组件 props 异步传值,子组件接收不到或接收错误
  • [C++]TinyWebServer
  • Uniswap价格批量查询与ws订阅行情