使用matplotlib的3D表面图,使用数据框列输入数据

卡罗琳·米尔霍兰卡(Caroline Milhoranca)

我有一个电子表格文件,我想输入该文件以使用Python中的Matplotlib创建3D表面图。

我曾经使用过plot_trisurf并且可以工作,但是我需要使用轮廓函数将轮廓轮廓投影到图形上,如本例所示

我正在努力将Z数据排列为2D数组,可用于在该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

我尝试使用这种方法通过来使用导入的数据plot_surface,但是我得到的确实是一个图形,但是它不起作用,这就是这种方法下图形的显示方式:非常在此处输入图片说明感谢

博菲

一种基于重新网格化数据的不同方法,该方法不需要在常规网格上指定原始数据[深受本示例启发;-]。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri
from mpl_toolkits.mplot3d import Axes3D

np.random.seed(19880808)

# compute the sombrero over a cloud of random points
npts = 10000
x, y = np.random.uniform(-5, 5, npts), np.random.uniform(-5, 5, npts)
z = np.cos(1.5*np.sqrt(x*x + y*y))/(1+0.33*(x*x+y*y))

# prepare the interpolator
triang = tri.Triangulation(x, y)
interpolator = tri.LinearTriInterpolator(triang, z)

# do the interpolation
xi = yi = np.linspace(-5, 5, 101)
Xi, Yi = np.meshgrid(xi, yi)
Zi = interpolator(Xi, Yi)

# plotting
fig = plt.figure()
ax = fig.gca(projection='3d')
norm = plt.Normalize(-1,1)
ax.plot_surface(Xi, Yi, Zi,
                cmap='inferno',
                norm=plt.Normalize(-1,1))
plt.show()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python中的matplotlib创建3D表面图

来自分类Dev

使用熊猫数据框的Matplotlib热图

来自分类Dev

如何从数据框中浮出图/ 3D图?

来自分类Dev

从数据绘制3D表面

来自分类Dev

matplotlib 3d表面图未显示

来自分类Dev

使用matplotlib从CSV数据绘制3D轨迹

来自分类Dev

使用matplotlib从导入的数据进行3D绘图

来自分类Dev

为R中的3D图重建数据框

来自分类Dev

matplotlib 3d 表面显示不正确的 x 和 y 数据

来自分类Dev

在Matplotlib中使用数据框日期列

来自分类Dev

在Matplotlib中使用数据框日期列

来自分类Dev

使用matplotlib进行绘图时,根据数据框列中的字符串创建颜色图

来自分类Dev

使用matplotlib从熊猫数据框绘制timeeris图

来自分类Dev

使用plotly为3D表面图创建自定义轴标签

来自分类Dev

使用matplotlib进行3d图的标签处理

来自分类Dev

matplotlib中的自定义颜色图用于3D表面图

来自分类Dev

绘制3D表面图

来自分类Dev

如何创建3D表面图

来自分类Dev

R中的3D表面图

来自分类Dev

3D表面图放错轴

来自分类Dev

使用 python 绘制 3D 表面: raise ValueError("Argument Z must be 2-dimensional.") matplotlib

来自分类Dev

从数据框的4列创建3D矩阵

来自分类Dev

使用 Matplotlib 将内插 3D 数据绘制为 2D 图像

来自分类Dev

matplotlib中的3d表面

来自分类Dev

Matplotlib分离3D数据的2D等高线投影图

来自分类Dev

Matplotlib 3d 绘图:在 2 个表面上获取单个颜色图

来自分类Dev

使用networkD3和数据框的有向图

来自分类Dev

如何从文件中读取数据z = f(x,y)在matplotlib中制作3D图

来自分类Dev

如何从文件中读取数据z = f(x,y)在matplotlib中制作3D图