|
最近,在学习使用python的pandas包处理大量数据,并通过matplotlib包画出三维图出来,自己编写的代码如下:
import pandas as pd
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
X = np.zeros((10, 7)) # 设置了一个10×7的X数组
Y = np.zeros((10, 7)) # 设置了一个10×7的Y数组
print('X prime = ', X.shape)
print('Y prime = ', Y.shape)
ExcelName = pd.read_excel('01.xlsx', header=None) # 01.xlsx是我存放数据的excel文件,01.xlsx数据具体自附件中可见
df = pd.DataFrame(ExcelName)
Z = df.values
for i in range(1, df.shape[0]+1):
for j in range(1, df.shape[1]+1):
X[i - 1][j - 1] = (i - 1) * 38.2 # X中的元素代表excel表格中第几行元素经过数据转化变成的坐标
Y[i - 1][j - 1] = (j - 1) * 38.2 # Y中的元素代表excel表格中第几列元素经过数据转化变成的坐标
X,Y,Z =np.meshgrid(X,Y,Z)ax.plot_surface(X,Y,Z, rstride=1, cstride=1, cmap='sanweitu')
plt.show()
该程序运行后出现错误如下:Traceback (most recent call last): File "I:/数模模拟/work_place/pandas_owmn.py", line 29, in <module> ax.plot_surface(X,Y,Z, rstride=1, cstride=1, cmap='sanweitu') File "D:\Program Files\Python36\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1636, in plot_surface raise ValueError("Argument Z must be 2-dimensional.")ValueError: Argument Z must be 2-dimensional.
请教各位大神,帮助一下小弟,最近在学习这方面的东西,请指教一下,或者有好的程序,麻烦发给我拜读一下。谢谢谢
|
-
-
01.xlsx
8.43 KB, 下载次数: 3
程序中需要读取额excel
|