我有一个 2D 数组 (3x3),我想从每个行向量生成一个条形图,其中包含 3 个条形图,如下所示:http://www.flickr.com/photos/altaf009_forums/8265573801/
使用 MATLAB 'bar' 函数很容易,只需将数组作为参数传递,我如何在 python 中做到这一点?我还想要那些 xticklabels,如图所示。谢谢。
您可以从他们的网站改编(并简化)以下 Matplotlib 示例:http://matplotlib.org/examples/pylab_examples/barchart_demo.html.
如果您有两个一维数组,您可以使用 Eric 的解决方案,但如果您想要 2D 数组的解决方案,您可以使用我用于绘制机器学习数据的代码:
def graph_probs( data ):
num_groups, num_bars = data.shape
x = np.arange( num_bars )
bar_width = 0.15
fig, ax = plt.subplots()
for i in range( num_groups ):
ax.bar( x + i * bar_width, data[i], width=bar_width, label=f'Image {i+1}')
for i in x[1:]:
plt.axvline( x = i - 0.2, color='gray' )
ax.set_xlabel( 'Label' )
ax.set_ylabel( 'Probability' )
ax.set_title( 'CNN Probabilities of each Image being a Label (1-9)')
ax.set_xticks( x + bar_width * (num_groups - 1) / 2 )
ax.set_xticklabels( [f'#{i+1}' for i in x] )
ax.legend()
plt.show()
生成的图像: