Я новичок в bokeh и пытаюсь выяснить, что такое columnDataSource. Он появляется во многих местах, но я не уверен в его цели и как это работает. Может кто-нибудь осветить? Извините, если это глупый вопрос ...Назначение columnDataSource в bokeh
ответ
ColumnDataSource - это объект, в котором хранятся данные графа Боке. Вы можете не использовать ColumnDataSource и подавать свой график напрямую с помощью словарей Python, фреймов pandas и т. Д., Но для некоторых функций, таких как наличие всплывающего окна, отображающего информацию о данных, когда пользователь наводит курсор мыши на глифы, вы вынуждены использовать ColumnDataSource, иначе всплывающее окно не сможет получить данные. Другими видами использования могут быть потоковые данные.
Вы можете создать источник ColumnDataSource из словарей и фреймов данных pandas, а затем использовать ColumnDataSource для создания глифов.
Не могли бы вы добавить крошечный пример того, как делать то, что вы написали в ответ? Произнесите временной ряд, где вы хотите видеть данные при наведении указателя мыши над графиком – famargar
Это должно работать:
import pandas as pd
import bokeh.plotting as bp
from bokeh.models import HoverTool, DatetimeTickFormatter
# Create the base data
data_dict = {"Dates":["2017-03-01",
"2017-03-02",
"2017-03-03",
"2017-03-04",
"2017-03-05",
"2017-03-06"],
"Prices":[1, 2, 1, 2, 1, 2]}
# Turn it into a dataframe
data = pd.DataFrame(data_dict, columns = ['Dates', 'Prices'])
# Convert the date column to the dateformat, and create a ToolTipDates column
data['Dates'] = pd.to_datetime(data['Dates'])
data['ToolTipDates'] = data.Dates.map(lambda x: x.strftime("%b %d")) # Saves work with the tooltip later
# Create a ColumnDataSource object
mySource = bp.ColumnDataSource(data)
# Create your plot as a bokeh.figure object
myPlot = bp.figure(height = 600,
width = 800,
x_axis_type = 'datetime',
title = 'ColumnDataSource',
y_range=(0,3))
# Format your x-axis as datetime.
myPlot.xaxis[0].formatter = DatetimeTickFormatter(days='%b %d')
# Draw the plot on your plot object, identifying the source as your Column Data Source object.
myPlot.circle("Dates",
"Prices",
source=mySource,
color='red',
size = 25)
# Add your tooltips
myPlot.add_tools(HoverTool(tooltips= [("Dates","@ToolTipDates"),
("Prices","@Prices")]))
# Create an output file
bp.output_file('columnDataSource.html', title = 'ColumnDataSource')
bp.show(myPlot) # et voilà.
- 1. Как извлечь данные из Bokeh ColumnDatasource
- 2. Python Bokeh: Установить цвет линии, основанный на колонке в columndatasource
- 3. взаимозависимые виджеты в bokeh
- 4. Показатель Bokeh не обновляется при изменении содержимого массива numpy в источнике ColumnDataSource
- 5. Bokeh Python; Использовать обратный вызов на ColumnDataSource для изменения Stacked Bar Chart с помощью Select Widget
- 6. Bokeh потокового выпуск: линия
- 7. Значения NaN в графике bokeh
- 8. Bokeh динамически меняющийся BoxAnnotation
- 9. Bokeh Charts: HoverTool tips
- 10. Как использовать инструмент Bokeh BoxSelect?
- 11. Bokeh Heatmap Legend
- 12. Динамическое добавление/удаление участка с использованием «bokeh serve» (bokeh 0.12.0)
- 13. Изменение цвета неиспользуемых линий Bokeh
- 14. формата цвет принята Bokeh участки
- 15. Добавить обратный вызов в Bokeh DataTable
- 16. DropDown не работает с Bokeh
- 17. В Bokeh, Weird Date Axis Issue
- 18. Показывать только часть оси Y на Bokeh
- 19. Choropleth Map, Bokeh - Назначение цветов патчей на основе значений свойств
- 20. Обновление Bokeh из процесса многопроцессорности
- 21. Bokeh ведет себя загадочным образом
- 22. Bokeh hovertool in multiple_line plot
- 23. Анимация GMapPlot w/Python/Bokeh
- 24. Интерактивный слайдер с использованием Bokeh
- 25. Python Bokeh CustomJS для виджетов
- 26. bokeh server get mouse position
- 27. Bokeh: Автоматически освежающие графики bokeh
- 28. Инструмент Hover не работает в Bokeh
- 29. Python/Bokeh - FuncTickFormatter
- 30. Bokeh: передать vars в CustomJS для виджетов
Если вы знакомы с R или панды 'DataFrame' предметов,' ColumnDataSource' в основном более простой вариант этого. Это набор массивов данных (столбцов), на которые можно ссылаться именами. Фактическая внутренняя структура такова: словарь, который отображает строки в списки/массивы. Это основной способ переноса данных из python в библиотеку браузера BokehJS. – bigreddot