我认为这是一个简单的修复。我试图用字符串名称替换matplotlib中的3d条形图中的整数值,最后一个字母莫名其妙地不会显示:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(11,8.5))
ax = fig.add_subplot(111, projection='3d')
for c, z in zip([qwer for qwer in ['r', 'g', 'b', 'y']*20][:len(sss.keys())], sss.keys()):
xs = np.array(sss[z].keys())
ys = np.array([sss[z][key] for key in sss[z]])
cs = [c] * len(xs)
ax.bar(xs, ys, zs=z, zdir='y', color=cs, alpha=0.8)
ax.set_xlabel('Second Interval')
ax.set_ylabel('First Interval')
ax.set_zlabel('Frequency')
ax.set_xticklabels(['skip down','step down','stay','step up','skip up'])
ax.set_yticklabels(['','skip down','','step down','','stay','','step up','','skip up'])
ax.set_title('Proportional Frequency of S/S/S Intervals by Previous Interval')
plt.show()
sss
是一个字典,其他字典作为值。
不幸的是我无法发布图片,但基本上图表看起来都很好,x和y轴上的所有字符串标签都可以工作,除了'跳过'沿y轴。它位于y轴和z轴之间的拐角处,并且不会出现。
什么了?