数据分析_时间维度对比及变化可视化分析(Pandas和Matplotlib)

数据分析_时间维度对比及变化可视化分析(Pandas和Matplotlib)

分析维度包括:

  1. 各年度合计销量

  2. 各年度合计销售额

  3. 各年度平均每公斤销售额

  4. 各月度销量对比

  5. 各月度销售额变化

构建测试数据

这里你可以了解到:

  • 如何生成时间相关的数据。

  • 如何从列表(可迭代对象)中生成随机数据。

  • Pandas 的 DataFrame 自行创建, 包含生成新字段。

  • Pandas 数据合并。

(1) 构建数据: 时间字段:

time_range = pd.date_range(start="2019/01/01", end="2021/12/31")print("[Message] Time Range Built Through Pandas:")
print(time_range)print("[Message] Time Length Built Through Pandas:")
print(len(time_range))

输出:

[Message] Time Range Built Through Pandas:
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04','2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08','2019-01-09', '2019-01-10',...'2021-12-22', '2021-12-23', '2021-12-24', '2021-12-25','2021-12-26', '2021-12-27', '2021-12-28', '2021-12-29','2021-12-30', '2021-12-31'],dtype='datetime64[ns]', length=1096, freq='D')
[Message] Time Length Built Through Pandas:
1096

(2) 构建数据: 水果列表:

fruits = ["香蕉", "苹果", "葡萄", "橙子", "哈密瓜", "芭乐", "梨", "桃子"]
fruits_list = np.random.choice(fruits, size=len(time_range), replace=True)print("[Message] Fruits List Built Through NumPy:")
print(fruits_list)print("[Message] Length of Fruits List Built Through NumPy:")
print(len(fruits_list))

输出:

[Message] Fruits List Built Through NumPy:
['香蕉' '葡萄' '香蕉' ... '香蕉' '橙子' '桃子']
[Message] Length of Fruits List Built Through NumPy:
1096

(3) 构建数据: 客户列表:

names = ["Mike", "Jhon", "Tom", "Xiaoming", "Jimmy", "Lym", "Michk"]
names_list = np.random.choice(names, size=len(time_range), replace=True)print("[Message] Customer List Built Through NumPy:")
print(names_list)print("[Message] Length of Customer List Built Through NumPy:")
print(len(names_list))

输出:

[Message] Customer List Built Through NumPy:
['Mike' 'Michk' 'Michk' ... 'Xiaoming' 'Jhon' 'Lym']
[Message] Length of Customer List Built Through NumPy:
1096

(4) 构建数据: 订单数据:

order = pd.DataFrame({"time": time_range,   # -> 下单时间。"fruit": fruits_list, # -> 水果名称。"name": names_list,   # -> 顾客名。"kilogram": np.random.choice(list(range(50,100)), size=len(time_range),replace=True)}) # -> 购买量。print("[Message] Generate Order Data Through Pandas DataFrame:")
print(order)

输出:

[Message] Generate Order Data Through Pandas DataFrame:time  fruit      name  kilogram
0     2019-01-01   香蕉      Mike        63
1     2019-01-02   葡萄     Michk        69
2     2019-01-03   香蕉     Michk        51
3     2019-01-04   香蕉      Mike        69
4     2019-01-05   香蕉       Tom        64
...          ...    ...       ...       ...
1091  2021-12-27   葡萄       Lym        94
1092  2021-12-28     梨  Xiaoming        60
1093  2021-12-29   香蕉  Xiaoming        95
1094  2021-12-30   橙子      Jhon        90
1095  2021-12-31   桃子       Lym        93[1096 rows x 4 columns]

(5) 构建数据: 水果信息:

information = pd.DataFrame({"fruit": fruits,"price": [3.8, 8.9, 12.8, 6.8, 15.8, 4.9, 5.8, 7],"region": ["华南", "华北", "西北", "华中", "西北", "华南", "华北", "华中"]})print("[Message] Building Fruits Information Through Pandas DataFrame:")
print(information)

输出:

[Message] Building Fruits Information Through Pandas DataFrame:fruit  price  region
0    香蕉    3.8    华南
1    苹果    8.9    华北
2    葡萄   12.8    西北
3    橙子    6.8    华中
4  哈密瓜   15.8    西北
5    芭乐    4.9    华南
6      梨    5.8    华北
7    桃子    7.0    华中

(6) 构建数据: 合并订单数据和水果信息:

# 将订单信息和水果信息直接合并成一个完整的 DataFrame, 这个 df 就是要用到的测试数据。
df = pd.merge(order, information, how="outer").sort_values("time").reset_index(drop=True)print("[Message] Merge Order Data and Fruits Information Through Pandas DataFrame:")
print(df)

输出:

[Message] Merge Order Data and Fruits Information Through Pandas DataFrame:time  fruit      name  kilogram  price  region
0     2019-01-01   香蕉      Mike        63    3.8    华南
1     2019-01-02   葡萄     Michk        69   12.8    西北
2     2019-01-03   香蕉     Michk        51    3.8    华南
3     2019-01-04   香蕉      Mike        69    3.8    华南
4     2019-01-05   香蕉       Tom        64    3.8    华南
...          ...    ...       ...       ...    ...   ...
1091  2021-12-27   葡萄       Lym        94   12.8    西北
1092  2021-12-28     梨  Xiaoming        60    5.8    华北
1093  2021-12-29   香蕉  Xiaoming        95    3.8    华南
1094  2021-12-30   橙子      Jhon        90    6.8    华中
1095  2021-12-31   桃子       Lym        93    7.0    华中[1096 rows x 6 columns]

(7) 构建数据: 计算订单金额:

df["amount"] = df["kilogram"] * df["price"]print("[Message] Compute Order Amount Through Pandas DataFrame:")
print(df.head())

输出:

[Message] Compute Order Amount Through Pandas DataFrame:time  fruit   name  kilogram  price  region  amount
0  2019-01-01   香蕉   Mike        63    3.8    华南   239.4
1  2019-01-02   葡萄  Michk        69   12.8    西北   883.2
2  2019-01-03   香蕉  Michk        51    3.8    华南   193.8
3  2019-01-04   香蕉   Mike        69    3.8    华南   262.2
4  2019-01-05   香蕉    Tom        64    3.8    华南   243.2

配置 Matplotlib (全局配置)

# 指定 Matplotlib 默认字体 (解决中文无法显示的问题)。
plt.rcParams['font.sans-serif'] = ['SimHei']# 解决 Matplotlib 保存图像时负号 "-" 显示方块的问题。
plt.rcParams['axes.unicode_minus'] = False# 设置 Matplotlib 字体大小 (全局生效)。
plt.rcParams['font.size'] = 12

各年度总体数据 (销量, 销售额, 平均每公斤销售额)

提取年份:

# 提取日期中的年份。
df["year"] = df["time"].dt.year# 同时提取日期中的年份和月份。
df["year_month"] = df["time"].dt.strftime('%Y%m')

计算各年度总体数据 (销量, 销售额, 平均每公斤销售额):

# 计算各年度总体数据: 销量和销售额。
gather_by_year = df.groupby("year").agg({"kilogram": "sum", "amount": "sum"}).reset_index()# 计算各年度总体数据: 平均每公斤销售额。
gather_by_year["mean_amount_per_kg"] = gather_by_year["amount"] / gather_by_year["kilogram"]print("[Message] Overall Data for Each Year (Quantity, Amount, mean_amount_per_kg):")
print(gather_by_year)

输出:

[Message] Overall Data for Each Year (Quantity, Amount, mean_amount_per_kg):year  kilogram    amount  mean_amount_per_kg
0  2019     27276  220240.1            8.074501
1  2020     27114  219481.2            8.094755
2  2021     27201  219475.3            8.068648

使用 Matplotlib 对数据进行可视化

绘制 各年各月(年月) 销量对比的条形图 (带 Colorbar 颜色映射):

Colorbar (颜色条) 在绘图中的作用非常重要, 它主要用于以下几个方面:

  • 表示数据范围: Colorbar 可以显示图中的颜色映射范围, 帮助理解图中不同颜色所代表的数据范围。例如, 在热力图中, 不同的颜色可能表示不同的温度值, 颜色条可以告诉哪种颜色对应哪个温度值。

  • 数据解释: Colorbar 可以提供关于颜色和数据之间的映射关系的信息。可以通过查看颜色条来了解不同颜色在图中代表的数据值。

  • 数据分布: 颜色条可以帮助理解数据的分布情况。例如, 颜色条中的颜色分布越均匀, 表示数据在整个范围内都有分布。

# 按 各年各月(年月) 聚合销量数据。
aggregated = df.groupby("year_month")["kilogram"].sum().reset_index()# 创建一个 12 * 6 点的图, 设置分辨率为 72。
fig = plt.figure(figsize=(12, 6), dpi=72)# 配置 Matplotlib ColorBar 相关参数。
scales = aggregated["kilogram"].values.tolist()
cmap = plt.get_cmap("Spectral_r") # -> "Spectral" 为正序 (由红到蓝), "Spectral_r" 为倒序 (由蓝到红)。
norm = plt.Normalize(min(scales), max(scales))# 使用 Matplotlib 绘制条形图。
ax1 = plt.subplot2grid((6, 12), (0, 0), rowspan=6, colspan=11)
for x, y in zip(aggregated["year_month"], scales):ax1.bar(x, y, color=[cmap(norm(y))])# 配置 ax1 绘图区域相关信息。
ax1.set_title("条形图 (2019年 - 2021年每月销售量)")
ax1.tick_params(axis='x', labelrotation=-90) # -> 将 X 轴刻度标签旋转 90 度 (正数为逆时针, 负数为顺时针)。
ax1.set_xlabel("日期 (年月)")
ax1.set_ylabel("销售量 (Kilogram)")# 使用 Matplotlib 绘制 ColorBar。
ax2 = plt.subplot2grid((6, 12), (0, 11), rowspan=6, colspan=1)
sm =  ScalarMappable(norm=norm, cmap=cmap)
cbar = fig.colorbar(sm, cax=ax2)
cbar.ax.set_title("Scale")plt.show()

预览:

图01

绘制 各年各月(年月) 销售额走势折线图:

matplotlib.pyplot 的 .plot 方法是我们平时绘图的时候最常用的函数之一, 其中 **kwargs 不作介绍, 和其他保持一致, 下面通过例子详细说一下。

函数签名:
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)调用示例:
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

本例代码:

# 按 各年各月(年月) 聚合销售额数据。
aggregated = df.groupby("year_month")["amount"].sum().reset_index()# 创建一个 12 * 6 点的图, 设置分辨率为 72。
fig = plt.figure(figsize=(12, 6), dpi=72)# 使用 Matplotlib 绘制折线图。
plt.plot(aggregated["year_month"], aggregated["amount"])# 配置绘图区域相关信息。
plt.title("折线图 (2019年 - 2021年每月销售额)")
plt.xticks(rotation=-90) # -> 将 X 轴刻度标签旋转 90 度 (正数为逆时针, 负数为顺时针)。
plt.xlabel("日期 (年月)")
plt.ylabel("销售额")
plt.grid(True)plt.show()

预览:

图02

完整代码

#!/usr/bin/python3
# Create By GF 2023-07-28# 分析维度包括:
# 1. 各年度合计销量
# 2. 各年度合计销售额
# 3. 各年度平均每公斤销售额
# 4. 各月度销量对比
# 5. 各月度销售额变化import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib.cm import ScalarMappable# (1) 构建数据: 时间字段。
time_range = pd.date_range(start="2019/01/01", end="2021/12/31")print("[Message] Time Range Built Through Pandas:")
print(time_range)print("[Message] Time Length Built Through Pandas:")
print(len(time_range))# (2) 构建数据: 水果列表。
fruits = ["香蕉", "苹果", "葡萄", "橙子", "哈密瓜", "芭乐", "梨", "桃子"]
fruits_list = np.random.choice(fruits, size=len(time_range), replace=True)print("[Message] Fruits List Built Through NumPy:")
print(fruits_list)print("[Message] Length of Fruits List Built Through NumPy:")
print(len(fruits_list))# (2) 构建数据: 客户列表。
names = ["Mike", "Jhon", "Tom", "Xiaoming", "Jimmy", "Lym", "Michk"]
names_list = np.random.choice(names, size=len(time_range), replace=True)print("[Message] Customer List Built Through NumPy:")
print(names_list)print("[Message] Length of Customer List Built Through NumPy:")
print(len(names_list))# (4) 构建数据: 订单数据。
order = pd.DataFrame({"time": time_range,   # -> 下单时间。"fruit": fruits_list, # -> 水果名称。"name": names_list,   # -> 顾客名。"kilogram": np.random.choice(list(range(50,100)), size=len(time_range),replace=True)}) # -> 购买量。print("[Message] Generate Order Data Through Pandas DataFrame:")
print(order)# (5) 构建数据: 水果信息。
information = pd.DataFrame({"fruit": fruits,"price": [3.8, 8.9, 12.8, 6.8, 15.8, 4.9, 5.8, 7],"region": ["华南", "华北", "西北", "华中", "西北", "华南", "华北", "华中"]})print("[Message] Building Fruits Information Through Pandas DataFrame:")
print(information)# (6) 构建数据: 合并订单数据和水果信息。
# 将订单信息和水果信息直接合并成一个完整的 DataFrame, 这个 df 就是要用到的测试数据。
df = pd.merge(order, information, how="outer").sort_values("time").reset_index(drop=True)print("[Message] Merge Order Data and Fruits Information Through Pandas DataFrame:")
print(df)# (7) 构建数据: 计算订单金额。
df["amount"] = df["kilogram"] * df["price"]print("[Message] Compute Order Amount Through Pandas DataFrame:")
print(df.head())# ##################################################################################################### 指定 Matplotlib 默认字体 (解决中文无法显示的问题)。
plt.rcParams['font.sans-serif'] = ['SimHei']# 解决 Matplotlib 保存图像时负号 "-" 显示方块的问题。
plt.rcParams['axes.unicode_minus'] = False# 设置 Matplotlib 字体大小 (全局生效)。
plt.rcParams['font.size'] = 12# ##################################################################################################### 提取日期中的年份。
df["year"] = df["time"].dt.year# 同时提取日期中的年份和月份。
df["year_month"] = df["time"].dt.strftime('%Y%m')# 计算各年度总体数据: 销量和销售额。
gather_by_year = df.groupby("year").agg({"kilogram": "sum", "amount": "sum"}).reset_index()# 计算各年度总体数据: 平均每公斤销售额。
gather_by_year["mean_amount_per_kg"] = gather_by_year["amount"] / gather_by_year["kilogram"]print("[Message] Overall Data for Each Year (Quantity, Amount, mean_amount_per_kg):")
print(gather_by_year)# ####################################################################################################
# 绘制 各年各月(年月) 销量对比的条形图 (带 Colorbar 颜色映射)# Colorbar (颜色条) 在绘图中的作用非常重要, 它主要用于以下几个方面:
# - 表示数据范围: Colorbar 可以显示图中的颜色映射范围, 帮助理解图中不同颜色所代表的数据范围。例如, 在热力图中, 不同的颜色可能表示不同的温度值, 颜色条可以告诉哪种颜色对应哪个温度值。
# - 数据解释: Colorbar 可以提供关于颜色和数据之间的映射关系的信息。可以通过查看颜色条来了解不同颜色在图中代表的数据值。
# - 数据分布: 颜色条可以帮助理解数据的分布情况。例如, 颜色条中的颜色分布越均匀, 表示数据在整个范围内都有分布。# 按 各年各月(年月) 聚合销量数据。
aggregated = df.groupby("year_month")["kilogram"].sum().reset_index()# 创建一个 12 * 6 点的图, 设置分辨率为 72。
fig = plt.figure(figsize=(12, 6), dpi=72)# 配置 Matplotlib ColorBar 相关参数。
scales = aggregated["kilogram"].values.tolist()
cmap = plt.get_cmap("Spectral_r") # -> "Spectral" 为正序 (由红到蓝), "Spectral_r" 为倒序 (由蓝到红)。
norm = plt.Normalize(min(scales), max(scales))# 使用 Matplotlib 绘制条形图。
ax1 = plt.subplot2grid((6, 12), (0, 0), rowspan=6, colspan=11)
for x, y in zip(aggregated["year_month"], scales):ax1.bar(x, y, color=[cmap(norm(y))])# 配置 ax1 绘图区域相关信息。
ax1.set_title("条形图 (2019年 - 2021年每月销售量)")
ax1.tick_params(axis='x', labelrotation=-90) # -> 将 X 轴刻度标签旋转 90 度 (正数为逆时针, 负数为顺时针)。
ax1.set_xlabel("日期 (年月)")
ax1.set_ylabel("销售量 (Kilogram)")# 使用 Matplotlib 绘制 ColorBar。
ax2 = plt.subplot2grid((6, 12), (0, 11), rowspan=6, colspan=1)
sm =  ScalarMappable(norm=norm, cmap=cmap)
cbar = fig.colorbar(sm, cax=ax2)
cbar.ax.set_title("Scale")plt.show()# ####################################################################################################
# 绘制 各年各月(年月) 销售额走势折线图# matplotlib.pyplot 的 .plot 方法是我们平时绘图的时候最常用的函数之一, 其中 **kwargs 不作介绍, 和其他保持一致, 下面通过例子详细说一下。
#
# 函数签名:
# matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)
#
# 调用示例:
# plot([x], y, [fmt], *, data=None, **kwargs)
# plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)# 按 各年各月(年月) 聚合销售额数据。
aggregated = df.groupby("year_month")["amount"].sum().reset_index()# 创建一个 12 * 6 点的图, 设置分辨率为 72。
fig = plt.figure(figsize=(12, 6), dpi=72)# 使用 Matplotlib 绘制折线图。
plt.plot(aggregated["year_month"], aggregated["amount"])# 配置绘图区域相关信息。
plt.title("折线图 (2019年 - 2021年每月销售额)")
plt.xticks(rotation=-90) # -> 将 X 轴刻度标签旋转 90 度 (正数为逆时针, 负数为顺时针)。
plt.xlabel("日期 (年月)")
plt.ylabel("销售额")
plt.grid(True)plt.show()

总结

以上就是关于 数据分析 时间维度对比及变化可视化分析(Pandas和Matplotlib) 的全部内容。

更多内容可以访问我的代码仓库:

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

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

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

相关文章

Linux多进程(二)进程通信方式一 管道

管道的是进程间通信(IPC - InterProcess Communication)的一种方式,管道的本质其实就是内核中的一块内存(或者叫内核缓冲区),这块缓冲区中的数据存储在一个环形队列中,因为管道在内核里边,因此我们不能直接…

Vue 双向绑定、diff和nextTick原理

前言 什么是虚拟dom virtual DOM 虚拟DOM,用普通js对象来描述DOM结构,因为不是真实DOM,所以称之为虚拟DOM。 虚拟 dom 是相对于浏览器所渲染出来的真实 dom而言的,在react,vue等技术出现之前,我们要改变页面…

LabVIEW专栏八、类

该章目的是可以开发仪器类。 一、类的概述 一般来说类有三大特性,封装,继承和多态。 在实际项目中,最主要是继承和多态,要搞清楚这两者的概念和在LabVIEW中是怎样应用的。在LabVIEW中,面向对象编程用到的就是LabVIE…

SAM在低阶自适应航空土地覆盖分类中的应用2024.01

GEOSCIENCE AND REMOTE SENSING LETTERS 2024.01 提出了一种新的语义分割模型,该模型结合了SAM的图像编码器和低秩自适应方法(LoRA),用于航空图像的特征提取和微调。我们还使用了一个辅助CNN编码器来促进下游适应,并补充ViT编码器在密集视觉…

机器学习模型效果不好及其解决办法

当训练出来的机器学习模型效果不佳时,可能涉及多个方面的原因。为了改善模型的效果,需要系统地检查和分析问题的根源,并采取相应的措施进行优化。 一、数据问题 数据质量 检查数据是否干净、完整,是否存在噪声、异常值或缺失值。…

【MySQL】A01、性能优化-语句分析

1、数据库优化方向 A、SQL及索引优化 根据需求写出良好的SQL,并创建有效的索引,实现某一种需求可以多种写法,这时候我们就要选择一种效率最高的写法。这个时候就要了解sql优化 B、数据库表结构优化 根据数据库的范式,设计表结构&…

从C向C++14——STL初识及函数对象

一.STL初识 1.STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西C的面向对象和泛型编程思想,目的就是复用性的提升多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了ST…

详解汽车充电桩主板的硬件设计与软件系统

随着电动汽车时代的到来,充电桩逐渐成为城市新地标。而在每一个充电桩的核心,隐藏着一颗强大的“心脏”——充电桩主板。 充电桩主板是充电桩的核心部件,决定着充电桩的充电效率、安全和用户体验。今天,我们将深入探索汽车充电桩主…

分布式版本控制工具 Git 的使用方式

文章目录 Git简介下载安装基本使用起始配置Git 的三个区域基本操作流程查看仓库状态删除(撤销暂存区)差异对比查看版本日志版本回退修改提交日志分支概念:创建分支与切换分支合并分支(快速合并)合并分支(提…

北京筑龙当选中招协第二届招标采购数字化专业委员会执行主任单位

4月18-19日,中国招标投标协会(以下简称中招协)2024年年会在宁波召开,北京筑龙作为中招协理事会员单位受邀出席会议。会议期间举行了“电子招标采购专业委员会换届会议暨第二届第一次工作会议”,北京筑龙当选第二届招标…

用代码给孩子造“钱”

起因 作为家里有两个娃的奶爸,时长为了孩子乱花钱而焦虑不已。然后最近看到一段短视频说了这么段话。 父母不要被动给孩子买东西,而是定期给孩子钱。让孩子自己管钱培养她对于钱的认知和理财的观念。 突然感觉大师我悟了。感觉值得一试。于是就打算给他…

如何在官网查看Qt5的所有模块?

2024年4月23日,周二上午 如果你不想一步步来的话,可以直接去这个Qt官方链接 https://doc.qt.io/qt-5/qtmodules.html 第一步:去到Qt官网 https://www.qt.io/ 第二步:点击文档链接 第三步:选择文档中的“Qt5” 第四步…

Python中的tkinter工具包帮助文档查询以及Python其他GUI工具包分类

Python中的tkinter工具包帮助文档查询以及Python其他GUI工具包分类 虽然Python支持许多GUI工具包,然而Tkinter是Python的实际标准GUI(图形用户界面)包,也是最常用的一种。本文简要介绍tkinter工具包帮助文档查询以及Python其他GU…

SpanBert学习

SpanBERT: Improving Pre-training by Representing and Predicting Spans 核心点 提出了更好的 Span Mask 方案,也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好;通过加入 Span Boundary Objective (SBO) 训练目标,增强了 BERT 的性…

Python小功能实现(链接下载图品并存储到EXCEL中)

import os import requests from openpyxl import Workbook from openpyxl.drawing.image import Image from concurrent.futures import ThreadPoolExecutor# 图片链接列表 image_urls ["https://uploads/file/20230205/f85Lpcv8PXrLAdmNUDE1Hh6xqkp0NHi2gSXeqyOb.png&q…

ctfshow——XSS

文章目录 XSS介绍什么是xss&#xff1f;XSS危害XSS的分类常用XSSpayload web316——反射型XSSweb317——过滤<script> web318——过滤script、imgweb319——不止过滤script、imgweb320——过滤空格web321——不止过滤空格web322——不止过滤空格web323web324web 325web32…

报名 | Qt汽车及工业行业解决方案及实战训练 深圳站(5月15日 星期三)

加入我们的Qt技术培训&#xff0c;探索跨平台应用开发的无限可能&#xff01;本次培训将深入Qt框架&#xff0c;涵盖从基础概念到高级功能的全方位知识&#xff0c;无论您是刚入门的新手还是希望提升技能的资深开发者&#xff0c;都能在此找到适合自己的学习路径。通过实践案例…

OpenTelemetry-2.Go接入Jaeger(grpc,gin-http)

目录 1.什么是OpenTelemetry 2.搭建jaeger 3.链路追踪 本地调用 远程调用 GRPC proto server端 client端 Gin-HTTP 调用流程 api1 api2 grpc 4.完整代码 1.什么是OpenTelemetry 参考&#xff1a;OpenTelemetry-1.介绍-CSDN博客 2.搭建jaeger 参考&#xff1a;…

齐护K210系列教程(八)_LCD显示图片

LCD显示图片 文章目录 LCD显示图片1&#xff0c;显示单张图片2&#xff0c;通过按键切换显示SD卡内的图片3&#xff0c;通过传感器切换图片4&#xff0c;画中画显示&#xff0c;并缩放5&#xff0c;课程资源 联系我们 AIstart 显示的图片的默认分辨率为&#xff1a;320*240 &am…

使用ROC指标100次盈利交易后,众汇才明白的道理

使用ROC指标100次盈利交易后才明白的道理&#xff0c;众汇外汇认为盈利的基本就是考虑这些指标。 ①.资产波动性 需要考虑到资产波动性&#xff0c;根据资产的波动性更改设置&#xff0c;设置的结果会告诉投资者这段时间的平均波动率。 ②添加过滤器。交易系统的主要指标是趋…