Python 使用彩色地图图例打印条形图

Python 使用彩色地图图例打印条形图,python,matplotlib,bar-chart,legend,colormap,Python,Matplotlib,Bar Chart,Legend,Colormap,考虑以下几点: 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)

考虑以下几点:

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

我想在图表的右上角显示colormap legend(当然要小得多)。目前我的图像看起来相当笨重,因为颜色贴图与实际的条形图有些冲突

谢谢。

以下内容:

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


我爱你
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])