Bokeh Ich habe folgende auf der Grundlage ihrer docs:Beschriftungen hinzufügen Punkte
album_names = ['Ctrl', 'Ctrl', 'Z', 'Ctrl', 'Ctrl', 'Z', 'Ctrl', 'Ctrl', 'Ctrl', 'Ctrl', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Ctrl', 'Ctrl', 'Ctrl', 'Ctrl', 'Ctrl', 'Ctrl', 'Z']
valence = [0.37, 0.598, 0.481, 0.166, 0.413, 0.0798, 0.549, 0.332, 0.348, 0.335, 0.355, 0.22, 0.433, 0.158, 0.357, 0.134, 0.367, 0.237, 0.248, 0.239, 0.535, 0.432, 0.505, 0.142]
energy = [0.579, 0.686, 0.551, 0.367, 0.61, 0.475, 0.488, 0.525, 0.534, 0.517, 0.56, 0.342, 0.688, 0.505, 0.551, 0.63, 0.71, 0.453, 0.518, 0.708, 0.463, 0.684, 0.296, 0.576]`
df = pd.DataFrame([album_names, energy, valence]).T
df.columns = ['album_name', 'energy', 'valence']
ich ein Streudiagramm mit Bokeh mit Wertigkeit auf der x-Achse, Energie auf der y-Achse machen will. Wenn Sie den Mauszeiger über jeden Punkt bewegen, soll er auch den Wert für album_name
angeben. Und die Farbe des Punktes basiert album_name
.
Ich habe versucht, die folgenden:
from bokeh.models import ColumnDataSource, Range1d, LabelSet, Label
from bokeh.io import output_notebook, show
from bokeh.plotting import figure
from bokeh.palettes import brewer
source = ColumnDataSource(data=dict(valence=valence,
energy=energy,
names=album_names))
p = figure()
p.scatter(x='valence', y='energy', size=8, source=source)
labels = LabelSet(x='valence', y='energy', text='names',
level='glyph', x_offset=5, y_offset=5,
source=source, render_mode='canvas')
p.add_layout(labels)
show(p)
Aber das zeigt nicht den Namen des Albums, wie Sie über den Punkt schweben. Es behebt den Albumnamen neben dem Punkt. Jede Hilfe in den ALBUM_NAME immer nur um zu zeigen, wenn sie über den Punkt schweben und das Ändern der Farbe basierend auf dem Wert von ALBUM_NAME würde stark
Hinweis verstanden werden: es wäre ähnlich wie unter
Vielen Dank für die Bearbeitung gezeigt, @ user4261201. Hatte keine Ahnung, wie man den Code richtig formatiert. – iwtbid