【发布时间】:2016-03-10 01:05:50
【问题描述】:
我想绘制一个似然分布,基本上是一个 NxT 矩阵,其中每一行代表每个时间步长中某个变量的分布 t (t=0...T) ,所以我可以可视化最大似然估计会产生的轨迹。
我想象几个 2D 图,一个在另一个前面 - 像这样:
目前基于this我已经尝试过:
def TrajectoryPlot(P):
P=P[0:4]
fig = plt.figure()
ax = fig.gca(projection='3d')
def cc(arg):
return colorConverter.to_rgba(arg, alpha=0.6)
xs = np.arange(0, len(P[0]))
verts = []
zs = [0.0, 1.0, 2.0, 3.0, 4.0]
for i in range(len(P)):
print(i)
verts.append(list(zip(xs, P[i])))
poly = PolyCollection(verts, facecolors=[cc('r'), cc('g'), cc('b'),
cc('y')])
poly.set_alpha(0.7)
ax.add_collection3d(poly, zs=zs, zdir='y')
ax.set_xlabel('X')
ax.set_ylabel('Likelihood')
ax.set_zlabel('Time')
plt.show()
但这还不行。
【问题讨论】:
-
你看过matplotlib gallery吗?具体来说,this 和 this 的组合将满足您的需求。
-
老实说我对matplotlib不太熟练,所以这些对我来说完全无法理解。据我所知,没有直接的方法可以做到这一点。
-
到目前为止你尝试过什么?如果我是你,我会首先在与矩阵中的一个“行”相对应的普通 2D 轴上绘制一个图。如果您遇到特定问题,我愿意为您提供帮助,但 SO 不是代码编写服务。即使我愿意,我也无法给你一个完整的例子,因为你没有清楚地解释你的数据结构或情节应该代表什么。如果 matplotlib 对你来说真的“难以理解”,那么也许你应该从 one of the tutorials 开始。
标签: python matplotlib mplot3d