Ben bokeh için yeni ve columnDataSource ne yaptığını anlamaya çalışıyorum. Pek çok yerde görünür ama amacından ve nasıl çalıştığından emin değilim. Birisi aydınlatabilir mi? Bu aptalca bir soru ise özür dileriz ...Dizin sütunDataSource amacı
cevap
ColumnDataSource, bir Bokeh grafiğin verilerinin depolandığı nesnedir. Bir ColumnDataSource kullanmamayı ve grafiğinizi doğrudan Python sözlükleri, pandalar veri çerçeveleri vb. Ile beslemeyi tercih edebilirsiniz, ancak kullanıcı fare glifler üzerinde fareyi tuttuğunda veri bilgilerini gösteren bir açılır pencere olması gibi belirli özellikler için, bir ColumnDataSource aksi halde açılır pencere verileri alamayacaktır. Veri akışı yapılırken diğer kullanımlar olacaktır.
Sözlük ve pandalar veri tabanlarından ColumnDataSource oluşturabilir ve ardından glifleri oluşturmak için ColumnDataSource kullanabilirsiniz.
Lütfen cevapta yazdıklarınızı nasıl yapacağınıza dair küçük bir örnek ekleyebilir misiniz? Grafiğin üstünde fareyi gezdirirken verileri görmek istediğiniz bir zaman dizisi söyleyin – famargar
Bu çalışması gerekir:
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à.
Eğer R veya Pandalar 'DataFrame' nesnelerle tanıyorsanız,' ColumnDataSource' temelde bu daha basit bir versiyonudur. İsimlerle ifade edilebilen veri dizileri (sütunlar) topluluğudur. Gerçek iç yapı sadece şudur: dizeleri listeler/dizilerle eşleyen bir sözlük. Verilerin python'dan BokehJS tarayıcı kitaplığına taşınması birincil yoldur. – bigreddot