嗨,我有一个简单的3D散点图-一个数据帧bm
,列和索引分别为x
和y
轴.当我绘制它时,我想添加一张彩色 map --也很简单,我已经在下面完成了.
然而,在我的数据bm
中,我有一些我不想绘制的零-这也很容易-我将它们设置为NaN
.However, this causes a problem with the colour matrix. scatter
不喜欢这样.我已经try 了带NAN和不带NAN的传递 colored颜色 矩阵,但都失败了,并出现错误.
如果您删除将绘制的行bm = bm.replace({0: np.nan})
,则下面的代码是完全有效的.
N = 100
bm = pd.DataFrame(
index=pd.bdate_range(start='2012-01-01', periods=N, freq='B'),
data={x: np.random.randn(N) for x in range(1, 11)}
)
# Simulate some zeros
bm = pd.DataFrame(index=bm.index, columns=bm.columns, data=np.where(np.abs(bm.values) < 0.02, 0, bm.values))
# Set zeros to Nan so that I don't plot them
bm = bm.replace({0: np.nan})
z = bm.values
x = bm.columns.tolist()
y = bm.reset_index().index.tolist()
x, y = np.meshgrid(x, y)
# Set up plot
fig = plt.figure(figsize = (15,10))
ax = plt.axes(projection ='3d')
# plotting
ax.scatter(x, y, z, '.', c=bm.values, cmap='Reds') # THIS FAILS
ax.xaxis.set_ticklabels(bm.columns);
ax.yaxis.set_ticklabels(bm.index.strftime('%Y-%m-%d'));
我们欢迎任何帮助.