colorbar更改文本值matplotlib

时间:2016-07-11 14:13:41

标签: matplotlib colorbar colormap

给出以下代码

x = np.random.random((50))*2 -1
y = np.random.random((50))
plt.scatter(x,y,c=x**3,cmap='viridis')
cb = plt.colorbar()

#I want a smarter (& working) version of this
cb.ax.set_yticklabels(
    [str(np.cbrt(eval(i.get_text()))) for i in cb.ax.get_yticklabels()]
    ) 

我想使用x**3来强调小尺度上的差异来设置散点图中的颜色,但我希望显示x的值(不是x**3,如图所示彩色条上的情节。

我相信这可以通过使用反函数(此处为cube-root)更改标签来完成。问题在于matplotlib通常会选择圆值,而这通常不会选择这样的值。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用FuncFormatter模块中的matplotlib.ticker执行此操作。

例如:

{{1}}

enter image description here