使用 matlotlib,我可以創建如下所示的圖形:在這里,每一行由一系列從 0 到 0.6 的數字組成。左側軸文本表示每行中的最大值。底部軸文本表示列索引。實際網格的代碼基本上涉及這一行: im = ax[r,c].imshow(info_to_use, vmin=0, vmax=0.6, cmap='gray')其中是 row和 columnax[r,c]的當前子圖軸,并且是一個 numpy 形狀數組,其值介于 0 和 0.6 之間。rcinfo_to_use(num_rows, num_cols)我想知道是否有一種方法可以轉換上面的代碼,以便它顯示條形圖,每行一個?像這個手繪圖:(與之前的圖相比,我手繪圖中的列數不一樣。)我知道如果將其嵌入到這里的第一個圖中,這將導致非常難以閱讀的圖。對于行數較少的繪圖,我會使用它,這將使條形更易于閱讀。但我不確定如何從這些跳轉到每行的條形圖?;蛘咧辽倏梢苑从乘臇|西,例如,不是將整個單元格著色為灰色,而是根據vmax?
1 回答
牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
import numpy as np
from matplotlib import pyplot as plt
a = np.random.rand(10,20)*.6
在一個循環中,為二維數組中的每一行調用 plt.subplot 然后 plt.bar 。
for i, thing in enumerate(a,1):
plt.subplot(a.shape[0],1,i)
plt.bar(range(a.shape[1]),thing)
plt.show()
plt.close()
或者,創建所有子圖;然后在一個循環中用每個軸制作一個條形圖。
fig, axes = plt.subplots(a.shape[0],1,sharex=True)
for ax, data in zip(axes, a):
ax.bar(range(a.shape[1]), data)
plt.show()
plt.close()
添加回答
舉報
0/150
提交
取消
