我有一个由....创建的数据集。
import random
count = []
for i in range(1, 4):
for j in range(3, 6):
for k in range(15,19):
count.append((i, j, k, random.random()))我想创建count与i,j和k对的3d图形(所以总共3个图形)。我看过这里的例子:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#surface-plots,但它们似乎都在动态地创造价值。如何绘制所需的曲面或网格图?
发布于 2013-02-21 03:15:42
我不得不破折号,但这就是我尝试绘制数据的方式- count与(i,j)示例-请参见最后一行的索引切片。如果你需要的话,我很乐意进一步了解。
>>> from mpl_toolkits.mplot3d import Axes3D
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> import random
>>>
>>> count = []
>>> for i in range(1, 4):
... for j in range(3, 6):
... for k in range(15,19):
... count.append((i, j, k, random.random()))
...
...
...
...
>>> data = np.array(count)
>>> fig = plt.figure()
>>> ax = fig.gca(projection='3d')
>>>
>>> # I think this is the sort of thing you want:
>>>
>>> ax.plot_trisurf(data[:,0], data[:,1], data[:,3])
/usr/local/lib/python2.7/dist-packages/matplotlib/delaunay/triangulate.py:103: DuplicatePointWarni
ng: Input data contains duplicate x,y points; some values are ignored.
DuplicatePointWarning,
<mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x46e8390>
>>> plt.show()https://stackoverflow.com/questions/14986193
复制相似问题