日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Excel 数据处理

發(fā)布時間:2023/11/16 windows 51 coder
生活随笔 收集整理的這篇文章主要介紹了 Excel 数据处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

2023 年高教社杯全國大學(xué)生數(shù)學(xué)建模競賽題目 -- 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 = []

# 創(chuàng)建一個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},坐標(biāo)為({xx:.2f},{yy:.2f})", end=' ')  # 索引值從 0 開始
    print()

# # 繪制散點圖,x、y 和 z 作為坐標(biāo),小數(shù)點后兩位精度
# 使用顏色映射根據(jù) z 值著色
sc = ax.scatter(x, y, z, c=z, cmap='viridis', marker='o')
# 設(shè)置坐標(biāo)軸標(biāo)簽
ax.set_xlabel('X-Label(MM)')
ax.set_ylabel('Y-Label(MM)')
ax.set_zlabel('Z-Value(NM)', labelpad=10)

# 設(shè)置圖表標(biāo)題
plt.title('Depth')


# 自定義刻度標(biāo)簽的顯示格式
def format_func(value, tick_number):
    return f"{value:.2f}"


def format_func_z(value, tick_number):
    return f"{value:.5f}"


# 設(shè)置x、y、z軸的刻度標(biāo)簽格式
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)')

# 擬合切平面
# 創(chuàng)建一個 LinearRegression 模型
model = LinearRegression()

# 將 x 和 y 合并為一個特征矩陣
features = np.column_stack((x, y))

# 擬合模型
model.fit(features, z)

# 獲取擬合的平面參數(shù)
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)))

# 轉(zhuǎn)換為角度
angle_deg = np.degrees(angle_rad)

print(f"夾角(弧度):{angle_rad:.2f}")
print(f"夾角(度):{angle_deg:.2f}")


# 定義一個函數(shù)來計算 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()

總結(jié)

以上是生活随笔為你收集整理的Excel 数据处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。