There is one existing answer to this question here but it is wrong.
In the example dataframe from the previous question, the US has the highest number of python users (10,110), yet in the graph it appears as though France has the highest instead.
Can someone help me fix the solutions code?
EXAMPLE DATAFRAME:
EG
Language C C++ Java Python Perl
Country
USA 3222 343 2112 10110 89
France 5432 323 1019 678 789
Japan 7878 467 767 8788 40
INCORRECT CODE:
from mpl_toolkits.mplot3d import Axes3D
# thickness of the bars
dx, dy = .8, .8
# prepare 3d axes
fig = plt.figure(figsize=(10,6))
ax = Axes3D(fig)
# set up positions for the bars
xpos=np.arange(eg.shape[0])
ypos=np.arange(eg.shape[1])
# set the ticks in the middle of the bars
ax.set_xticks(xpos + dx/2)
ax.set_yticks(ypos + dy/2)
# create meshgrid
# print xpos before and after this block if not clear
xpos, ypos = np.meshgrid(xpos, ypos)
xpos = xpos.flatten()
ypos = ypos.flatten()
# the bars starts from 0 attitude
zpos=np.zeros(eg.shape).flatten()
# the bars' heights
dz = eg.values.ravel()
# plot
ax.bar3d(xpos,ypos,zpos,dx,dy,dz)
# put the column / index labels
ax.w_yaxis.set_ticklabels(eg.columns)
ax.w_xaxis.set_ticklabels(eg.index)
# name the axes
ax.set_xlabel('Country')
ax.set_ylabel('Language')
ax.set_zlabel('Count')
plt.show()