Python 获取颜色条标签
我有一个散点图:Python 获取颜色条标签,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我有一个散点图: x,y,c,s = np.random.rand(100), np.random.rand(100), np.random.rand(100)*100, np.random.rand(100)*100 plt.scatter(x,y,c=c,s=s,cmap='YlGnBu', alpha=0.3) cbar = plt.colorbar() 如何获取颜色条标签?我可以想象,使用cbar.ax.get_yticklabels()我非常接近解决方案。然而,鉴于下图,我希望有如下
x,y,c,s = np.random.rand(100), np.random.rand(100), np.random.rand(100)*100, np.random.rand(100)*100
plt.scatter(x,y,c=c,s=s,cmap='YlGnBu', alpha=0.3)
cbar = plt.colorbar()
如何获取颜色条标签?我可以想象,使用cbar.ax.get_yticklabels()
我非常接近解决方案。然而,鉴于下图,我希望有如下内容:
array([ 10., 20., 30., 40., 50., 60., 70., 80., 90.])
这将提供颜色条y轴刻度上的刻度,该刻度有限制(0.0、1.0) 这就是您需要的:
np.interp(cbar.ax.get_yticks(), cbar.ax.get_ylim(), cbar.get_clim())
结果是:
array([ 10., 20., 30., 40., 50., 60., 70., 80., 90.])
试试这个:
x,y,c,s = np.random.rand(100), np.random.rand(100), np.random.rand(100)*100, np.random.rand(100)*100
b = plt.scatter(x,y,c=c,s=s,cmap='YlGnBu', alpha=0.3)
cbar = plt.colorbar(b)
label_list = []
for i in cbar.ax.get_yticklabels():
a = int(i.get_text())
label_list.append(a)
print label_list
plt.show()
我得到的答案是[10,20,30,40,50,60,70,80,90]哇。多谢。我想我最大的问题是阅读文本列表。酷,如果你想要浮点,你可以使用float()而不是int()
x,y,c,s = np.random.rand(100), np.random.rand(100), np.random.rand(100)*100, np.random.rand(100)*100
b = plt.scatter(x,y,c=c,s=s,cmap='YlGnBu', alpha=0.3)
cbar = plt.colorbar(b)
label_list = []
for i in cbar.ax.get_yticklabels():
a = int(i.get_text())
label_list.append(a)
print label_list
plt.show()