qq_41734591
2018-05-02 13:30
采纳率: 66.7%
浏览 7.3k
已采纳

如何使用matplotlib生成如下热力图

图片说明
如上图,要求有标题,横纵坐标都为字母,右边有热力图图例,总之越像越好。最好标题和横纵坐标都和上图一致,中间的数据以列表形式给出,代码中多加点注释,我好理解一点。本人新手,以前没接触过绘图,知道很麻烦各位大神,请大神见谅。谢谢!
其实关于matplotlib生成热力图的问题我也看过不少,但好像没有完全能用的。我看到有个相似的代码如下,但缺少右边的colorbar,请问大神如何修改代码添加colorbar?:
import matplotlib.pyplot as plt
import numpy as np
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = np.random.rand(4,4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)

ax.invert_yaxis()
ax.xaxis.tick_top()

ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)

plt.show()

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • WuLi_Zhe 2018-05-03 06:18
    已采纳

    import numpy as np
    import matplotlib.pyplot as plt

    x = np.random.rand(100).reshape(10,10)
    plt.xticks(np.arange(10)+0.5,['x','y','z','h','j','k','t','f','q','p'])
    plt.yticks(np.arange(10)+0.5,['x','y','z','h','j','k','t','f','q','p'])
    plt.imshow(x, cmap=plt.cm.hot, vmin=0, vmax=1)
    plt.title('color-fast')
    plt.colorbar()
    plt.show()

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • devmiao 2018-05-02 16:06
    评论
    解决 无用
    打赏 举报
  • WuLi_Zhe 2018-05-03 01:35

    import numpy as np
    import matplotlib.pyplot as plt

    x = np.random.rand(100).reshape(10,10)
    plt.imshow(x, cmap=plt.cm.hot, vmin=0, vmax=1)
    plt.colorbar()
    plt.show()

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题