W poniższej konfiguracji tworzę wykres obszarowy na podstawie podstawowego przykładu. Jak mogę automatycznie uzyskać legendę na mój wkład, a nawet programatycznie. Na razie mam tylko legendę z jednym przedmiotem "A" i pierwszym kolorem.
from bokeh.plotting import *
...
patches([x2 for a in areas], list(areas.values()), color=colors, alpha=0.8,
line_color=None, legend='a', title="hello chart")
legend().orientation = "top_right" # what other options, may here?
show()
Jaki jest format przekazywania poprawek dla legendy jako wartości lub jak mogę wywołać legendę (), aby pokazać przedmiot i kolor dla każdego przedmiotu na działce?
2 odpowiedzi
Znalazłem następujący komentarz w Bokeh i Bądź na bieżąco:
OK, te ręcznie rysowane legendy są całkiem niezgrabne, zostaną ulepszone w przyszłym wydaniu
To działa na razie:
hold() # stop the curplot()
# and add the legend just next to the data
x, y = 15.5, 0
for i,area in enumerate(areas):
rect([x], [y], color=colors[i], width=0.3, height=400)
text([x], [y], text=area, angle=0, text_font_size="8pt", text_align="center", text_baseline="middle")
y = y + 100
show()
Nie mam odpowiedzi za pomocą patches
, ale możesz użyć wielu patch
:
from bokeh.plotting import *
...
for a, area in enumerate(areas):
p.patch(x2, areas[area], color=colors[a], legend=area, alpha=0.8, line_color=None)
show()
Co pokazuje legendę ładnie na każdy obszar.
Podobne pytania
Powiązane pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.