使用颜色图图例绘制条形图

考虑以下:


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()

https://img1.sycdn.imooc.com/656ecfbc00016a9e05510441.jpg

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



杨__羊羊
浏览 56回答 1
1回答

汪汪一只猫

按照这个答案:import matplotlib.pyplot as pltfrom matplotlib import cmimport numpy as npfrom mpl_toolkits.axes_grid1.inset_locator import inset_axesy = 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)。您可以通过编辑最后两行来移动颜色条并更改其大小(例如,loc可以设置您希望颜色条位于哪个角)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python