我有一个csv文件,它的z值网格对应于x在[1,2,3,4]中,y在[1,2,3]中,如下所示:
1.1,1.2,1.3
2.1,2.2,2.3
3.1,3.2,3.3
4.1,4.2,4.3我想用mplot3d制作一个三维散点图。怎样才能正确地读取文件并绘制3D图?
发布于 2020-08-20 16:04:16
我不确定我是否正确地理解了您的问题,但是如果CSV文件的第一列包含x坐标、第二列包含y坐标和第三z坐标,这实际上非常容易。
假设您的CSV文件看起来如下(标题很重要):
points.csv
x,y,z <- titles
1.1,1.2,1.3
2.1,2.2,2.3
3.1,3.2,3.3
4.1,4.2,4.3现在,您可以用pandas在一行中读取该文件
points = pandas.read_csv('points.csv')访问每一列也很容易:
points['x'].values #get the x coordinates因此,您可以使用matplotlib来绘制点:
完整代码:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas
points = pandas.read_csv('points.csv')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = points['x'].values
y = points['y'].values
z = points['z'].values
# x y z
# 1.1,1.2,1.3
# 2.1,2.2,2.3
# 3.1,3.2,3.3
# 4.1,4.2,4.3
ax.scatter(x, y, z, c='r', marker='o')
plt.show()输出:

备注:
查看这获取有关matplotlib三维绘图的更多信息。
https://stackoverflow.com/questions/63490462
复制相似问题