【问题标题】:Plotting bar charts with a colormap legend使用颜色图图例绘制条形图
【发布时间】:2020-10-19 16:18:25
【问题描述】:

考虑以下几点:

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

y = np.array([1, 4, 3, 2, 7, 11])
colors = cm.hsv(y / float(max(y)))
plot = plt.scatter(y, y, c = y, cmap = 'hsv')
plt.clf()
plt.colorbar(plot)
plt.bar(range(len(y)), y, color = colors)
plt.show()

我想让图例出现在图表的右上角(当然要小得多)。我现在的图像看起来相当笨拙,因为颜色图与实际的条形有些冲突。

谢谢。

【问题讨论】:

    标签: python matplotlib bar-chart legend colormap


    【解决方案1】:

    关注this answer

    import matplotlib.pyplot as plt
    from matplotlib import cm
    import numpy as np
    from mpl_toolkits.axes_grid1.inset_locator import inset_axes
    
    y = np.array([1, 4, 3, 2, 7, 11])
    colors = cm.hsv(y / float(max(y)))
    
    fig, ax = plt.subplots()
    plot = ax.scatter(y, y, c = y, cmap = 'hsv')
    plt.cla()
    ax.bar(range(len(y)), y, color = colors)
    
    cbaxes = inset_axes(ax, width="30%", height="3%", loc=2)
    plt.colorbar(plot, cax=cbaxes, orientation='horizontal', ticks=[0,2,4,6,8,10])
    

    我使用 plt.subplots 轻松引用轴 (ax)。您可以通过编辑最后 2 行来移动颜色条并更改其大小(例如更改 loc 可以设置您希望颜色条位于哪个角落)。

    【讨论】:

    • 我喜欢stackoverflow
    猜你喜欢
    • 1970-01-01
    • 2019-03-23
    • 2015-11-07
    • 2016-04-11
    • 2021-09-28
    • 1970-01-01
    • 2020-04-11
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多