首页 > 其他分享 >Excel 数据处理

Excel 数据处理

时间:2023-11-10 20:44:23浏览次数:39  
标签:set Excel 2f yy np xx 数据处理 ax

博客地址:https://www.cnblogs.com/zylyehuo/

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()

标签:set,Excel,2f,yy,np,xx,数据处理,ax
From: https://www.cnblogs.com/zylyehuo/p/17687262.html

相关文章

  • C#使用NPOI 读取并修改 Excel 模版(移动行,增加行)
    准备一下:templatePath为模版路径,初始化workbookvarworkbook=newXSSFWorkbook(File.OpenRead(templatePath));varsheet=workbook.GetSheetAt(0); //1、指定行、列单元格赋值sheet.GetRow(1).GetCell(2).SetCellValue(companyInfo?.FFullName); //2、模......
  • Excel变天!微软把Python「塞」进去了,直接可搞机器学习
    喜大普奔!微软把Python弄进Excel了!搭建一个机器学习天气预测模型,在Excel里即可实现。而且无需任何设置,在单元格里输入“=PY”,就能开搞。数据清理、预测分析、可视化等等任务,都能轻松实现。还和Anaconda达成了合作。各种常见Python库都能直接用,如Matplotlib、Seaborn等。咱就是说,这回......
  • 【数据处理脚本】字符串
    1.检测一个字符串内是否有中文#检测字符串是否含有中文defis_contain_chinese(check_str):forchincheck_str:ifu'\u4e00'<=ch<=u'\u9fff':returnTruereturnFalse 2.去除括号内容以及括号importre line=re.......
  • 封装java导出Excel工具类使用
     基于POI的导入导出工具类使用背景快速引入基本excel导入成对象合并excel导入成为对象导出复杂excel表格最后 背景自己封装了一个excel工具类,方便以后使用和部分可能有相同需求的朋友使用,现在做一个简单的记录快速引入第一步导包,maven包仅包含poi依赖,导入时注......
  • 封装java导出Excel工具类使用(二)
    目录背景快速引入基本excel导入成对象和合并excel导入成为对象导出基本excel表格注:本次更新的列表1对多样式同样适用于导出异形表中的列表最后背景自己封装了一个excel工具类,方便以后使用和部分可能有相同需求的朋友使用,现在做一个简单的记录快速引入第一步导包,maven包仅包含......
  • Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一起(方法五)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了四种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【论草莓如何成为冻干莓】给了unstack()操作的方法,代......
  • # yyds干货盘点 # Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了四种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【论草莓如何成为冻干莓】给了unstack()操作的方法,代码如下......
  • Excel删除重复行数据
    要在Excel中删除重复行,可以按照以下步骤操作:打开包含重复行的Excel文件。选中你想要检查重复行的数据范围。可以是整个工作表或特定的列。在Excel菜单栏中选择“数据”选项卡。在“数据”选项卡中,找到并点击“删除重复项”按钮。这将打开“删除重复项”对话框。在......
  • 数据处理
    什么是数据处理数据处理是指对数据(包括数值的和非数值的)进行分析和加工的技术过程。也就是对数据的采集、存储、检索、加工、变换和传输,将数据转换为信息的过程。数据处理的涵义数据是对事实、概念或指令的一种表达形式,可由人工或自动化装置进行处理。数据的形式可以是数字、文字、......
  • 面对设备制造商打造的分布式设备数据处理中心有什么功能
    随着企业规模越来越大,设备制造商加强对分布式设备的监控管理已经是必然趋势,要求实现对每个客户、每个设备、每个故障的监控管理,从而提供优质的产品及服务,对于加强企业形象建设与竞争力有重要作用。 数之能打造的分布式设备数据处理中心(物联网数据中台),支持数据汇聚、数据解析、数据......