Turnin11111 2021-09-12 13:54 采纳率: 85.7%
浏览 80
已结题

请问这段python代码为什么总报错?


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

#定义坐标轴
fig = plt.figure()
ax4 = plt.axes(projection='3d')
#ax = fig.add_subplot(111,projection='3d')  #这种方法也可以画多个子图

filename="D:/data/fujian1.csv"
with open(filename) as f:
    reader=csv.reader(f)
    header_row=next(reader)
    X,Y,Z=[ ],[ ],[ ]
    for row in reader:
        X=int(float(row[1]))
        Xs = np.array(X)
        Y = int(float(row[2]))
        Ys = np.array(Y)
        Z= int(float(row[3]))
        Zs = np.array(Z)
#作图
ax4.plot_surface(Xs,Ys,Zs,alpha=0.3,cmap='winter')     #生成表面, alpha 用于控制透明度
ax4.contour(Xs,Ys,Zs,zdir='Zs', offset=-3,cmap="rainbow")  #生成z方向投影,投到x-y平面
ax4.contour(Xs,Ys,Zs,zdir='Xs', offset=-6,cmap="rainbow")  #生成x方向投影,投到y-z平面
ax4.contour(Xs,Ys,Zs,zdir='Ys', offset=6,cmap="rainbow")   #生成y方向投影,投到x-z平面
#ax4.contourf(Xs,Ys,Zs,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影填充,投到x-z平面,contourf()函数
ax4.set_xlabel('X')
ax4.set_xlim(-300, 300)  #拉开坐标轴范围显示投影
ax4.set_ylabel('Y')
ax4.set_ylim(-300, 300)
ax4.set_zlabel('Z')
ax4.set_zlim(-300, 300)

plt.savefig('figure2.png',dpi=500)
plt.show()

img

  • 写回答

2条回答 默认 最新

  • joel_1993 2021-09-12 14:42
    关注

    同学你好,散点是无法生成surface的,必须是网格点2D才能生成平面
    还有你这句

        for row in reader:
            X=int(float(row[1]))
            Xs = np.array(X)
            Y = int(float(row[2]))
            Ys = np.array(Y)
            Z= int(float(row[3]))
            Zs = np.array(Z)
    

    要改成

        for row in reader:
            X.append(int(float(row[1])))
            Xs = np.array(X)
            Y.append(int(float(row[2])))
            Ys = np.array(Y)
            Z.append(int(float(row[3])))
            Zs = np.array(Z)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月12日

悬赏问题

  • ¥15 Ios抖音直播的时候如何添加自定义图片在直播间!
  • ¥60 riscv-pulpino总线上挂载axi从机
  • ¥15 ssh登录页面的问题
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥15 stm32 串口通讯过程中的问题
  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名