用echarts画天气预报

news2024/11/24 10:47:45

如图

上代码

<template>
    <div id="temp15day"></div>
</template>

<script setup>
import * as echarts from "echarts";
const initChart = () => {
    const machart = echarts.init(document.getElementById("temp15day"));

    var option = {
        grid: {
            show: true,
            backgroundColor: 'transparent',
            opacity: 0.3,
            borderWidth: '0',
            top: '220',
            bottom: '1%'
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            show: false
        },
        xAxis: [
            // 星期
            {
                type: 'category', // 类型为类目轴,适用于离散数据
                boundaryGap: false, // 不留空白,线条从第一个点开始
                position: 'top', // 位置在顶部
                offset: 133, // 与图表上边缘的距离
                zlevel: 100, // z轴层级,用于控制显示顺序
                axisLine: {
                    show: false // 不显示坐标轴线
                },
                axisTick: {
                    show: false // 不显示刻度线
                },
                axisLabel: {
                    interval: 0, // 每个标签都显示
                    formatter: [
                        '{a|{value}}' // 使用 rich text 格式化标签
                    ].join('\n'), // 换行符
                    rich: {
                        a: {
                            // color: 'white', // 标签颜色
                            fontSize: 14 // 字体大小
                        }
                    }
                },
                nameTextStyle: { // 名称文本样式,当前为空
                },
                data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
            },
            // 日期
            {
                type: 'category', // 同样是类目轴
                boundaryGap: false, // 不留空白
                position: 'top', // 位置在顶部
                offset: 110, // 与图表上边缘的距离
                zlevel: 100, // z轴层级
                axisLine: {
                    show: false // 不显示坐标轴线
                },
                axisTick: {
                    show: false // 不显示刻度线
                },
                axisLabel: {
                    interval: 0, // 每个标签都显示
                    formatter: [
                        '{a|{value}}' // 使用 rich text 格式化标签
                    ].join('\n'), // 换行符
                    rich: {
                        a: {
                            // color: 'white', // 标签颜色
                            fontSize: 14 // 字体大小
                        }
                    }
                },
                // nameTextStyle: {
                //     fontWeight: 'bold', // 字体加粗
                //     fontSize: 19 // 字体大小
                // },
                data: ["25日", "26日", "27日", "28日", "29日", "30日", "31日"]
            },
            // 天气图标
            {
                type: 'category',
                boundaryGap: false,//不留空白,数据点从第一个点开始
                position: 'top',//将坐标轴放置在图表的顶部。
                offset: 40,//设置坐标轴与图表上边缘的距离。
                zlevel: 100,//设置层级,使该坐标轴在其他元素之上显示。
                axisLine: {
                    show: false//不显示坐标轴线。
                },
                axisTick: {
                    show: false//不显示刻度线。
                },
                axisLabel: {
                    interval: 0,//所有标签都会显示
                    formatter: function (value, index) {
                        return '{' + index + '| }\n{b|' + value + '}'
                        // 签格式为 '{index| }\n{b|value}',其中 {index| } 用于显示天气图标,{b|value} 用于显示天气名称。
                    },
                    rich: {
                        // rich: 定义每个标签的样式。
                        // 0 到 6: 每个索引对应不同的天气图标,设置了背景图片(例如小雨、阴、多云等),每个图标大小为 40x40 像素。
                        // b: 定义天气状态文字的样式,包括字体大小和行高。
                        0: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/小雨.png'
                            },
                            height: 40,
                            width: 40
                        },
                        1: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/小雨.png'
                            },
                            height: 40,
                            width: 40
                        },
                        2: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/阴.png'
                            },
                            height: 40,
                            width: 40
                        },
                        3: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/小雨.png'
                            },
                            height: 40,
                            width: 40
                        },
                        4: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/多云.png'
                            },
                            height: 40,
                            width: 40
                        },
                        5: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/小雨.png'
                            },
                            height: 40,
                            width: 40
                        },
                        6: {
                            backgroundColor: {
                             
                                image: 'https://d.scggqx.com/forecast/img/小雨.png'
                            },
                            height: 40,
                            width: 40
                        },
                        b: {
                            // color: 'white',
                            fontSize: 12,
                            lineHeight: 30,
                            height: 20
                        }
                    }
                },
                // nameTextStyle: {
                //     fontWeight: 'bold',
                //     fontSize: 14
                // },
                // data: this.weatherdata.weather
                data: ['', '', '', '', '', '', '']
                // data: ["小雨", "小雨", "阴", "小雨", "多云", "小雨", "小雨"]
            }
            ,  // 风力风向
            {
                type: 'category',
                boundaryGap: false,
                position: 'top',
                offset: 50,
                zlevel: 100,
                axisLine: {
                    show: false
                },
                axisTick: {
                    show: false
                },
                axisLabel: {
                    interval: 0,
                    formatter: [
                        '{a|{value}}'
                    ].join('\n'),
                    rich: {
                        img: {
                            backgroundColor: {
                                image: 'https://example.com/icon.png' // 替换为你的图标URL
                            },
                            width: 16,
                            height: 16,
                            align: 'center'
                        },
                        a: {
                            // color: 'white',
                            fontSize: 12
                        }
                    }
                },
                nameTextStyle: {
                },
                data: ["3-4级", "<4级", "3-4级", "3-4级", "3-4级", "3-4级", "3-4级"]
            },
            // 空气质量
            {
                type: 'category',
                boundaryGap: false,
                position: 'top',
                offset: 20,
                zlevel: 100,
                axisLine: {
                    show: false
                },
                axisTick: {
                    show: false
                },
                axisLabel: {
                    interval: 0,
                    formatter: [
                        '{a|{value}}'
                    ].join('\n'),
                    rich: {
                        '优': {
                            backgroundColor: '#388E3C', // 深绿色
                            color: 'white',
                            padding: [4, 8],
                            borderRadius: 4,
                            fontSize: 12
                        },
                        '良': {
                            backgroundColor: '#A5D6A7', // 浅绿色
                            color: 'white',
                            padding: [4, 8],
                            borderRadius: 4,
                            fontSize: 12
                        }
                    }
                },
                data: ["优", "良", "良", "良", "良", "良", "良"]
            },
        ],
        yAxis: {
            type: 'value',
            show: false,//控制是否显示纵坐标轴
            axisLabel: {//设置纵坐标轴的标签样式。
                formatter: '{value} °C',
                color: 'white'//设置纵坐标轴标签的颜色为白色
            }
        },
        series: [
            {
                name: '最高气温',
                type: 'line', // 系列类型,这里是折线图
                data: ["16.3", "16.2", "17.6", "14.2", "17.6", "15.7", "14.3"], // 数据点
                symbol: 'emptyCircle', // 数据点的形状
                symbolSize: 10, // 数据点的大小
                showSymbol: true, // 显示数据点
                smooth: true, // 折线是否平滑
                itemStyle: { // 数据点样式
                    normal: {
                        color: '#C95843' // 数据点的颜色
                    }
                },
                label: { // 数据标签
                    show: true, // 是否显示
                    position: 'top', // 标签位置
                    formatter: '{c} °C' // 标签内容,这里显示温度
                },
                lineStyle: { // 折线样式
                    width: 1, // 线宽
                    // color: 'white' // 线颜色(这里注释掉了)
                },
                areaStyle: { // 区域样式(通常用于填充区域)
                    opacity: 1, // 透明度
                    color: 'transparent' // 填充颜色(这里是透明的)
                }
            },
            {
                name: '最低气温',
                type: 'line',
                data: ["13.4", "12.8", "13.5", "12.5", "12.4", "13.2", "13"],
                symbol: 'emptyCircle', // 数据点的形状
                symbolSize: 10, // 数据点的大小
                showSymbol: true, // 显示数据点
                smooth: true, // 折线是否平滑
                itemStyle: { // 数据点样式
                    normal: {
                        color: 'blue' // 数据点的颜色
                    }
                },
                label: {
                    // 数据标签
                    show: true, // 是否显示
                    position: 'bottom', // 标签位置
                    formatter: '{c} °C' // 标签内容
                    // color: 'white',
                },
                lineStyle: { // 折线样式
                    width: 1, // 线宽
                    // color: 'white' // 线颜色
                },
                areaStyle: { // 区域样式
                    opacity: 1, // 透明度
                    color: 'transparent' // 填充颜色(这里是透明的)
                }
            },

        ]
    }
    machart.setOption(option);
};
setTimeout(() => {
    initChart();
}, 800);
</script>

<style scoped>
#temp15day {
    width: 100%;
    height: 45vh;
}
</style>

 vue3写的,直接粘过去就可以用

改了天气的图标

    0: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/晴.png'
                            },
                            height: 40,
                            width: 40
                        },
                        1: {
                            backgroundColor: {
                                image: 'https://d.scggqx.com/forecast/img/大雨.png'
                            },
                            height: 40,
                            width: 40
                        },

如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何选择最合适的华为云数据库:指南与建议

在数字化转型的浪潮中&#xff0c;选择合适的数据库是企业成功的关键。华为云提供了多种数据库服务&#xff0c;以满足不同业务需求。以下是九河云总结的一些指南和建议&#xff0c;帮助您选择最合适的华为云数据库。 1. 了解业务需求 在选择数据库之前&#xff0c;首先需要了…

西米:未来的支付还能做吗?

未来支付行业还能做吗&#xff1f;一直是在洗牌&#xff0c;一直让你有上场的机会&#xff0c;做一个行业&#xff0c;最好的时间是行业刚刚开始&#xff0c;市场相对空白&#xff0c;跑马圈地&#xff0c;广撒网&#xff0c;利用时差赚钱&#xff0c;这是最好的时间。 另外&a…

【Kubernets】容器网络基础二:通讲CNI(Container Network Interface)容器网络接口实现方案

文章目录 背景知识Underlay网络Overlay网络一、基本概念二、工作原理三、实现方案四、应用场景 两者对比示意图 CNI实现有哪些&#xff1f;FlannelFlannel 的工作原理Flannel 的主要组件数据传输机制总结 Calico一、架构基础二、核心组件与功能三、路由与数据包转发四、安全策略…

Java微信支付接入(4) - API V3 API字典和相关工具

1. API列表 Native下单 - Native支付 | 微信支付商户文档中心 (qq.com) 以下是微信提供的 Native 支付的相关 API 微信提供了详细的请求接口和参数 2.接口规则 概述 - 通用规则 | 微信支付商户文档中心 (qq.com) 微信支付 APIv3 使用 JSON 作为消息体的数据交换格式。 JSO…

jupyterlab的安装与使用攻略

官网链接 Project Jupyter | Home 1.第一步安装 打开控制台 使用pip工具安装 pip install jupyterlab 如图 2.安装成功后启动 jupyter lab 会自动启动它的web页面 然后就可以正常使用咯&#xff01;&#xff01; 如果需要更换浏览器访问 新开控制台执行下面命令 jupy…

PowerJob做定时任务调度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、区别对比二、使用步骤1. 定时任务类型2.PowerJob搭建与部署 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; PowerJob是基于java开…

文件夹访问被拒绝:深度解析、恢复策略与预防指南

一、文件夹访问被拒绝现象概述 在日常的电脑使用中&#xff0c;我们时常会遇到文件夹访问被拒绝的情况。这一现象通常表现为在尝试打开某个文件夹时&#xff0c;系统弹出权限不足的提示&#xff0c;阻止用户进行访问或操作。文件夹访问被拒绝不仅会影响用户的正常使用&#xf…

KingbaseES数据库迁移-SHELL方式

目录说明 bin: 启动脚本 conf: 配置文件 doc: 帮助文档 drivers: 数据库连接驱动&#xff08;注意不同版本驱动的存放目录差别&#xff0c;详见readme.md&#xff09; jdk: jdk kdms: kdms程序 lib: 程序包 logs: 日志 result: 迁移报告 配置数据库连接信息 进入KDT…

FTP连接池与多线程FTP上传下载算法(Java)

设计一个能够处理FTP连接池在多线程环境下,尤其是涉及到故障重连时避免竞争条件的算法,需要综合考虑线程同步、连接状态管理和重试机制。以下是一个设计思路和实现方案: 设计思路 连接池管理: 维护一个连接池,其中包含多个FTP连接对象。每个FTP连接对象需有状态标记(如…

Windows系统安装Fooocus结合内网穿透实现公网环境远程生成AI图片

前言 本篇文章将介绍如何在本地Windows11电脑部署开源AI生图软件Fooocus&#xff0c;并结合Cpolar内网穿透工具轻松实现公网环境远程访问与使用。 Fooocus 是一个图像生成软件&#xff08;基于 Gradio&#xff09;&#xff0c;目前最流行的文生图大模型是 Stable Diffusion&a…

卷积的物理意义

禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》P146 一个计算的例子

【python】AI Navigator的使用及搭建本机大模型

使用 大模型下载 随机下载一款大模型用于尝试&#xff0c;作者尝试的是codegemma-7b-it该大模型&#xff0c;具体每一款大模型简单介绍请查看【Anaconda】AI Navigator中大模型简单介绍-CSDN博客 聊天对话 下载完成后点击New Chat即可对话聊天 搭建本机大模型 启动大模型服…

E. Expected Power (Codeforces 976 Div2)

这道题好难 原题 E. Expected Power 提示 Hint 1 试着找 f(S) 的期望值而不是 Hint 2 从f(S)的二进制表示中找规律来求 代码1 对答案代码做了注释 #include <bits/stdc.h> using namespace std;const int mod 1e97, N 2e5 10;// 最高只有1023, 小于等于2的10…

HAL+M4学习记录_5

一、串口 记录使用HAL库开发串口 1.1 简介 USART中文意思是通用同步异步收发器&#xff0c;常用串口是异步串口&#xff0c;简记为UART&#xff0c;是内部集成的硬件外设。使用两根通信线&#xff0c;发送端TX和接收端RX&#xff0c;工作时RX和TX交叉连接。由于计算机的USB接口…

【计算机网络】详谈TCP协议确认应答机制捎带应答机制超时重传机制连接管理机制流量管理机制滑动窗口拥塞控制延迟应答

一、TCP 协议段格式 1.1、4位首部长度 4位首部长度的基本单位是4字节&#xff0c;也就是说如果4位首部长度填6&#xff0c;那报头长度就是24字节。报头长度的取值范围为[0,60]字节&#xff0c;也就是说选项的最大长度为40字节。 二、确认应答机制 发送数据和发送应答&#x…

python爬虫 - 初识正则表达式

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、正则表达式 &#xff08;一&#xff09;正则表达式的基本作用 &#xf…

DAY7 继承多态

继承 目的 提高代码的重用性&#xff0c;减少一些重复代码的书写 权限修饰符 就是是用来限制类中的成员&#xff08;成员变量、成员方法、构造器&#xff09;能够被访问的范围。 private 只能本类 缺省 本类、同一个包中的类 protected 本类&#xff0c;同一个包中的类、子…

thenable的执行时机

thenable执行只有2个时机 1.触发resolve()时,代码尚未注册then的内容,那么直到代码扫描到then那一行,才会把then的内容放进队列 2.先注册then,直到后期遇到resolve(),才会进入队列 视频教学 https://www.bilibili.com/video/BV12zsqeMEyt

传智杯 第六届—C

题目描述&#xff1a; 输入两个字符串&#xff0c;从第一字符串中删除第二个字符串中所有的字符。例如&#xff1a;第一个字符串是"They are students."&#xff0c;第二个字符串是”aeiou"。删除之后的第一个字符串变成"Thy r stdnts."。保证两个字符…

仿生水凝胶微纤维:从蜘蛛丝获得灵感,探索高性能纤维材料的新路径

大家好&#xff01;今天咱们来了解一种水凝胶微纤维——《Bioinspired Mechanically Robust and Recyclable Hydrogel Microfibers Based on Hydrogen‐Bond Nanoclusters》发表于《Advanced Science》。研究人员从蜘蛛丝那儿获得灵感&#xff0c;想要做出既机械性能好&#xf…