【发布时间】:2022-01-19 15:11:15
【问题描述】:
你好,你好吗?正如您将看到的,我对 python 非常陌生,我需要制作一个脚本,它允许我打开 csv 文件并以 3d 形式绘制它们。 为了进入上下文,这个想法是将图表分为代表土壤测量部门的 X 和 Y,可以这么说,我们定义将在 10 公顷内制作 20 个样本,应该生成一个包含 20 个表格或地块的网格其中 Z 是每种土壤产品的测量值本身,即 9(pH、温度、湿度、氮、钾、磷、盐度、tds、电导率)。 我认为对于一个视觉问题,最好一次查看一个值而不是全部一起查看,也许可以放置复选框以单击要在图表中查看的值。
关于数据的顺序,我一直认为是x,y,val1,val2,val3,val4等是Z代表的值。
我创建了一个代码,但我无法让它与 CSV 一起使用。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import tkinter as tk
from tkinter import filedialog
#seccion para abrir archivos
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
## PARSEO DE DATA EN EJES
x1, y1, z1 = np.loadtxt(file_path, delimiter=',', unpack=True) #'muestras.txt'
""""
X,Y = np.meshgrid(np.arange(10), np.arange(10))
Z = np.sin(X) + np.sin(Y)
x = X.flatten()
y = Y.flatten()
z = Z.flatten()
"""
X,Y = np.meshgrid(np.arange(10), np.arange(10))
Z = z1
x = x1
y = y1
x = X.flatten()
y = Y.flatten()
z = Z.flatten()
fig = plt.figure(figsize=(9,3.2))
plt.subplots_adjust(0,0.07,1,1,0,0)
ax = fig.add_subplot(121, projection='3d')
ax2 = fig.add_subplot(122, projection='3d')
ax.set_title("trisurf with color acc. to z")
ax2.set_title("surface with color acc. to x")
ax.plot_trisurf(x,y,z , cmap="magma")
colors =plt.cm.magma( (X-X.min())/float((X-X.min()).max()) )
ax2.plot_surface(X,Y,Z ,facecolors=colors, linewidth=0, shade=False )
ax.set_xlabel("x")
ax2.set_xlabel("x")
plt.show()
【问题讨论】:
标签: python numpy matplotlib