微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 3D 表面上切换 X 和 Y 轴

如何解决在 3D 表面上切换 X 和 Y 轴

我正在尝试绘制滚动相关性的表面 - 10 天到 200 天。

我有一个类似于:

st = {'10': [-0.2,0.4,0.1],'20': [0.6,0.3,0],'30': [-0.4,0.6,0.2],'40': [0.1,0.2,0.4]}
st = pd.DataFrame(data=st)
st.index = pd.date_range("20200101",periods=3)
st

            10   20   30  40
2020-01-01 -0.2  0.6 -0.4 0.1
2020-01-02  0.4  0.3  0.6 0.2
2020-01-03  0.1  0.0  0.2 0.4

我正在使用下面的代码来获得以下输出

fig = plt.figure()
fig = plt.figure(figsize=(12,10))
ax = fig.gca(projection='3d')

x = st.columns
y = np.arange(0,len(st),1)

X,Y = np.meshgrid(x,y)
Z = st

ax.plot_surface(X,Y,Z,cmap=cm.coolwarm,linewidth=0,antialiased=False)

dates = st.index

ax.xaxis.set_ticks(np.arange(10,210,10))
ax.yaxis.set_ticks(y)
ax.yaxis.set_ticklabels(dates);

enter image description here

但是,x 轴和 y 轴是相反的。我正在尝试获取沿 x 轴的日期和沿 y 轴的滚动相关性。

我试过了:

fig = plt.figure()
fig = plt.figure(figsize=(12,10))
ax = fig.gca(projection='3d')

x,y = np.meshgrid(st.index,st.columns)

z = st

ax.plot_surface(x,y,z,10))
ax.yaxis.set_ticks(y)
ax.yaxis.set_ticklabels(dates);

但我收到以下错误

ValueError:形状不匹配:对象不能广播到单个形状

谁能帮我解决我哪里出错了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。