Я попытался сгенерировать трехмерный график, но я могу сделать это для каждого из столбцов цикла For Loop.Может кто-нибудь помочь мне построить это?Я также приложил код.Это не должно быть 3D, но что-то более интуитивное.
for i in west_africa.columns[2:]:
plt.style.use('seaborn-white')
data = west_africa.set_index(['Country','Year'])[[i]]
data = data.unstack().fillna(0).stack()
L = []
for j, group in data.groupby(level=1)[i]:
L.append(group.values)
z = np.hstack(L).ravel()
xlabels = west_africa.set_index(['Year']).index.get_level_values('Year').unique()
ylabels = west_africa.set_index(['Country']).index.get_level_values('Country').unique()
x = np.arange(xlabels.shape[0])
y = np.arange(ylabels.shape[0])
x_M, y_M = np.meshgrid(x, y, copy=False)
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
ax.w_xaxis.set_ticks(x + 0.5/2.)
ax.w_yaxis.set_ticks(y + 0.5/2.)
ax.w_xaxis.set_ticklabels(xlabels)
ax.w_yaxis.set_ticklabels(ylabels, rotation = 90, rotation_mode="anchor")
# Labeling the 3 dimensions
ax.set_xlabel('Year')
ax.set_ylabel('Country')
ax.set_zlabel(i)
values = np.linspace(0.2, 1., x_M.ravel().shape[0])
colors = plt.cm.Spectral(values)
ax.bar3d(x_M.ravel(), y_M.ravel(), z*0, dx=0.5, dy=0.5, dz=z, color=colors)
plt.show()