【问题标题】:Create 3d chart with csv with soil data使用带有土壤数据的 csv 创建 3d 图表
【发布时间】: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


    【解决方案1】:

    不要使用np.loadtxt 来加载CSV 文件,而是尝试安装pandas 并使用内置的read_csv()

    熊猫: https://pypi.org/project/pandas/

    read_csv 的文档: https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html

    使用 pandas 读取 csv 的示例:

    import pandas as pd
    
    dataframe = pd.read_csv(file_path)
    
    # If you want all the data as np array:
    np_values = dataframe.values
    

    【讨论】:

      猜你喜欢
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多