【发布时间】:2020-06-04 18:22:34
【问题描述】:
我有一个电子表格文件,我想输入它以在 Python 中使用 Matplotlib 创建一个 3D 曲面图。
我使用了plot_trisurf,它有效,但我需要将轮廓轮廓投影到可以使用表面函数like this example 获得的图形上。
我正在努力将我的 Z 数据排列在一个二维数组中,我可以用它来输入 plot_surface 方法。我尝试了很多东西,但似乎都没有效果。
这就是我的工作,使用plot_trisurf
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import pandas as pd
df=pd.read_excel ("/Users/carolethais/Desktop/Dissertação Carol/Códigos/Resultados/res_02_0.5.xlsx")
fig = plt.figure()
ax = fig.gca(projection='3d')
# I got the graph using trisurf
graf=ax.plot_trisurf(df["Diametro"],df["Comprimento"], df["temp_out"], cmap=matplotlib.cm.coolwarm)
ax.set_xlim(0, 0.5)
ax.set_ylim(0, 100)
ax.set_zlim(25,40)
fig.colorbar(graf, shrink=0.5, aspect=15)
ax.set_xlabel('Diâmetro (m)')
ax.set_ylabel('Comprimento (m)')
ax.set_zlabel('Temperatura de Saída (ºC)')
plt.show()
这是我的 df 数据框的一部分:
Diametro Comprimento temp_out
0 0.334294 0.787092 34.801994
1 0.334294 8.187065 32.465551
2 0.334294 26.155976 29.206090
3 0.334294 43.648591 27.792126
4 0.334294 60.768219 27.163233
... ... ... ...
59995 0.437266 14.113660 31.947302
59996 0.437266 25.208851 30.317583
59997 0.437266 33.823035 29.405461
59998 0.437266 57.724209 27.891616
59999 0.437266 62.455890 27.709298
我尝试this approach 将导入的数据与plot_surface 一起使用,但我得到的确实是一个图表,但它不起作用,这是图表在这种方法下的样子:
非常感谢
【问题讨论】:
-
在没有任何重要信息的情况下很难为您提供帮助。你做了什么,你的数据是如何组织的,你尝试了什么......
-
对不起,这是我的第一个问题。如果您可以看一下,我会用更多信息编辑问题,我会很高兴。谢谢。
-
看来你有60000个点,它们是在一个规则的网格上排列的吗? 300x200 也许?如果这些点确实在常规网格上,您可以按照
plot_surface所需的格式重塑数据
标签: python matplotlib graph 3d