考慮以下:import matplotlib.pyplot as pltfrom matplotlib import cmimport numpy as npy = 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()我希望顏色圖圖例出現在圖表的右上角(當然要小得多)。目前我的圖像看起來相當笨重,因為顏色圖與實際的條形有些沖突。
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
按照這個答案:
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)。您可以通過編輯最后兩行來移動顏色條并更改其大小(例如,loc可以設置您希望顏色條位于哪個角)。
添加回答
舉報
0/150
提交
取消