den folgenden Code Beicolorbar Änderung Textwert matplotlib
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()]
)
I Unterschiede auf kleinen Skalen betonen wollen x**3
die Farbe im Streudiagramm zu setzen, aber ich möchte den Wert von x
angezeigt werden (nicht x**3
wie in der gezeigten Grafik) auf der Farbleiste.
Das glaube ich kann, indem man die Etiketten mit Hilfe der inversen Funktion (hier Würfel root) durchgeführt werden. Das Problem dabei ist, dass Matplotlib typischerweise runde Werte wählt, während dies im Allgemeinen solche Werte nicht wählen würde.