颜色栏更改文本值matplotlib
给定以下代码颜色栏更改文本值matplotlib,matplotlib,colorbar,colormap,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.a
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
类似于显示的图中)的值
我相信这可以通过使用反函数(这里是立方根)更改标签来实现。问题是matplotlib通常选择舍入值,而通常不会选择这样的值
您可以使用模块中的
例如:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
x = np.random.random((50))*2 -1
y = np.random.random((50))
plt.scatter(x,y,c=x**3,cmap='viridis',vmin=-1,vmax=1)
cb = plt.colorbar()
def label_cbrt(x,pos):
return "{:4.2f}".format(np.cbrt(x))
cb.formatter = ticker.FuncFormatter(label_cbrt)
cb.update_ticks()
plt.show()
您可以使用模块中的
例如:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
x = np.random.random((50))*2 -1
y = np.random.random((50))
plt.scatter(x,y,c=x**3,cmap='viridis',vmin=-1,vmax=1)
cb = plt.colorbar()
def label_cbrt(x,pos):
return "{:4.2f}".format(np.cbrt(x))
cb.formatter = ticker.FuncFormatter(label_cbrt)
cb.update_ticks()
plt.show()