给出以下代码
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通常会选择圆值,而这通常不会选择这样的值。