Excel 数据处理
2023 年高教社杯全国大学生数学建模竞赛题目 -- B 题 多波束测线问题
图表格式
import numpy as np
import matplotlib.pyplot as plt
from openpyxl import load_workbook
from matplotlib.ticker import FuncFormatter
from sklearn.linear_model import LinearRegression
wb = load_workbook("附件.xlsx")
x = []
y = []
z = []
# 创建一个3D图表
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
worksheet = wb.worksheets[0]
yy = -0.02
for line in worksheet.iter_rows(min_row=3):
yy += 0.02
xx = -0.02
for ind in range(2, len(line)):
xx += 0.02
x.append(xx)
y.append(yy)
zz = line[ind].value
z.append(zz / 1852)
print(f"{line[ind].value:.2f},坐标为({xx:.2f},{yy:.2f})", end=' ') # 索引值从 0 开始
print()
# # 绘制散点图,x、y 和 z 作为坐标,小数点后两位精度
# 使用颜色映射根据 z 值着色
sc = ax.scatter(x, y, z, c=z, cmap='viridis', marker='o')
# 设置坐标轴标签
ax.set_xlabel('X-Label(MM)')
ax.set_ylabel('Y-Label(MM)')
ax.set_zlabel('Z-Value(NM)', labelpad=10)
# 设置图表标题
plt.title('Depth')
# 自定义刻度标签的显示格式
def format_func(value, tick_number):
return f"{value:.2f}"
def format_func_z(value, tick_number):
return f"{value:.5f}"
# 设置x、y、z轴的刻度标签格式
ax.xaxis.set_major_formatter(FuncFormatter(format_func))
ax.yaxis.set_major_formatter(FuncFormatter(format_func))
ax.zaxis.set_major_formatter(FuncFormatter(format_func_z))
# 添加颜色条
colorbar = plt.colorbar(sc, label='Z Value(NM)', pad=0.2)
colorbar.set_label('Z Value(NM)')
# 拟合切平面
# 创建一个 LinearRegression 模型
model = LinearRegression()
# 将 x 和 y 合并为一个特征矩阵
features = np.column_stack((x, y))
# 拟合模型
model.fit(features, z)
# 获取拟合的平面参数
coefficients = model.coef_
intercept = model.intercept_
a = coefficients[0]
b = coefficients[1]
c = 1.0
equation = f"z = {a:.5f} * x + {b:.5f} * y + {c:.5f}"
print(equation)
# 水平平面的法向量
horizontal_plane_normal = np.array([0, 0, 1])
# 计算两个法向量的点积
dot_product = np.dot([a, b, c], horizontal_plane_normal)
# 计算夹角(弧度)
angle_rad = np.arccos(dot_product / (np.linalg.norm([a, b, c]) * np.linalg.norm(horizontal_plane_normal)))
# 转换为角度
angle_deg = np.degrees(angle_rad)
print(f"夹角(弧度):{angle_rad:.2f}")
print(f"夹角(度):{angle_deg:.2f}")
# 定义一个函数来计算 z 值
def calculate_z(x_z, y_z):
return coefficients[0] * x_z + coefficients[1] * y_z + intercept
# 绘制拟合的切平面
xx, yy = np.meshgrid(np.arange(min(x), max(x), 0.02), np.arange(min(y), max(y), 0.02))
zz = calculate_z(xx, yy)
# 绘制切平面
ax.plot_surface(xx, yy, zz, cmap='coolwarm', alpha=0.5) # 使用 'coolwarm' 颜色映射,透明度0.5
# 显示图表
plt.show()
Excel 数据处理的更多相关文章
- Excel与Word套打功能使用技巧及EXCEL数据处理成绩
Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...
- 近期对FTP及Excel数据处理的一些摸索
一个多月没写随笔了,主要是发的东西,自己感觉也很垃圾,说又说回来,谁不是从垃圾变强的,所以不比比,还得努力.come on!! Python学习也有段时间了,近期为了解决同事的一个难题,所以我们决定联 ...
- Java对Excel数据处理(利用POI解析Excel)
前言 研究生复试结束我在学校官网上看到了全校按姓氏排列的拟录取名单,但是官网并没有给出每个人的专业,只有学号,另外还知道本专业的复试名单,所以我想知道对于本专业的拟录取名单.具体做法就是,扫描复试名单 ...
- streamsets excel 数据处理
streamsets 有一个directory的origin 可以方便的进行文件的处理,支持的格式也比较多,使用简单 pipeline flow 配置 excel 数据copy 因为使用的是容器,会有 ...
- 【Python】Excel数据处理
1.环境准备 > python2.7 > xlrd,xlwt模块下载与安装,前者用来读取excel文件,后者用来写入excel文件 2.实战案例 案例场景: > excel1中包含某 ...
- [Python]-openpyxl模块Excel数据处理-读取公式的结果
日常需要Python来处理各种数据,处理Excel数据常用的库一般有openpyxl.xlrd(读取).xlwt(写入). 经过对比发现openpyxl模块比较好用. openpyxl模块 这篇笔记比 ...
- excel数据处理,公式
1. 替换 SUBSTITUTE(字符串, 原字符串, 新字符串) =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(L2,"镇",""),& ...
- pandas+mysql+excel 数据处理
mysql 建表 join 建索引,不然查询慢 注意时间类型是否update后会被刷新 设计逻辑删除 enable , 不要delete null,字符串 数字运算用函数 ifnull( ...
- Excel数据处理
合并计算: 数据面板下的合并计算 然后设置好合并计算的区域 以及勾选 首行跟最左列
- EXCEL数据处理-经纬度转换:度分秒转换为小数
背景:工作中遇见此问题,整理了一下,花点时间随便总结下,希望能帮助到大家! 业务描述:红框内110°10′15"这种格式的经度,我想转换为110.36534这种格式. 步骤: 1.现将110 ...
随机推荐
- 论文解读(BERT-DAAT)《Adversarial and Domain-Aware BERT for Cross-Domain Sentiment Analysis》
论文信息 论文标题:Adversarial and Domain-Aware BERT for Cross-Domain Sentiment Analysis论文作者:论文来源:2020 ACL论文地 ...
- 关于"覆盖问题”的反思
[HAOI2007]覆盖问题 题目描述 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定 用3个L*L的 ...
- trick : Trygub num
trick大意 我对于这个trick的理解为:支持位运算的高精度 维护一个以 \(b\)为基数的大数 \(N\),并支持以下功能: 给定(可能是负)整数 \(|x|, |y| \leqslant n\ ...
- Datahub稳定版本0.10.4安装指南(独孤风版本)
大家好,我是独孤风,大数据流动的作者. 曾几何时,我在第一次安装JDK环境的时候也遇到了不小的麻烦,当时还有朋友就因为这个环境问题觉得自己根本不是编程的料,选择了放弃.当时有个段子说,"如果 ...
- [nginx]lua控制响应头
前言 适用场景:添加CDN缓存时间.操作set-cookie.标记业务数据类型等. 获取响应头 指令:ngx.resp.get_headers 语法:headers = ngx.resp.get_he ...
- [nginx]proxy_cache缓存系统
前言 proxy_cache是nginx内置的一个缓存系统,可实现减小后端负载的作用. 常用参数说明 参数 说明 proxy_cache_path 缓存文件路径.level表示目录层级,1:2表示两个 ...
- 操作过滤器—MVC中使用操作过滤器实现JWT权限认证
前言 上一篇文章分享了授权过滤器实现JWT进行鉴权,文章链接:授权过滤器-MVC中使用授权过滤器实现JWT权限认证,接下来将用操作过滤器实现昨天的JWT鉴权. 一.什么是操作过滤器? 与授权过滤器 ...
- Oracle-21C导入dmp文件
1.前期工作 具体参考该博文 Windows操作系统安装Oracle数据库 下载安装Oracle数据库图形管理工具 2.连接和调整数据库环境 2.1.以数据库管理员身份登录数据库 ++++++++++ ...
- 学习JavaScript的路径
学习JavaScript的路径可以按照以下步骤进行: 了解基本概念:首先学习JavaScript的基本概念,包括变量.数据类型.运算符.数组.对象.循环和条件语句等.可以通过阅读相关的教材.在线课程或 ...
- TIKZ全局样式设置
tikz绘图引擎 TIKZ绘图引擎是基于tex实现,代码极其复杂,每次编写都要单独设置样式,甚是繁琐,如何能够全局设置呢? \begin{tikzpicture}[ auto, % 决策结点 deci ...

