【发布时间】:2014-04-12 00:00:50
【问题描述】:
我正在尝试使用 3D 条形图绘制此数据集
B A freq
1 2003 2
1 2003 2
2 2008 1
2 2007 2
2 2007 2
3 2004 1
1 2004 3
1 2004 3
1 2004 3
我在这里写了代码。
data = pandas.DataFrame({'A':[2003,2003,2008,2007,2007,2004,2004,2004,2004] , 'B': [1,1,2,2,2,3,1,1,1] ,'C': [2,2,1,2,2,1,3,3,3] })
fig = plt.figure()
ax = plt.axes(projection='3d')
# put 0s on the y-axis, and put the y axis on the z-axis
#ax.plot(data.A.values, data.B.values,data.freq.values, marker='o', linestyle='--', color="blue", label='ys=0, zdir=z')
xpos= range(len( data.A.values))
ypos= range(len( data.B.values))
zpos= range(len( data.freq.values))
ax.bar3d(xpos, ypos, zpos, data.A.values, data.B.values,data.freq.values, color='b', alpha=0.5)
x_formatter = matplotlib.ticker.ScalarFormatter(useOffset=False)
ax.xaxis.set_major_formatter(x_formatter)
ax.set_xticks(data.A.values)
ax.set_yticks(data.B.values)
ax.set_zticks(data.freq.values)
plt.savefig("test.png", dpi=300)
plt.show()
但这似乎不是正确的方法?任何人都可以通过展示我们如何自定义轴来提供帮助吗?
当我使用情节时它会起作用
ax.plot(data.A.values, data.B.values,data.freq.values,marker='o', linestyle='--', color='r')
而不是 bar3D
ax.bar3d(xpos, ypos, zpos, data.A.values, data.B.values,data.freq.values, color='b', alpha=0.5)
但我想使用 3D 直方图更好地理解。
【问题讨论】:
标签: python matplotlib pandas