据我所知,这正是散景的用途:在网络浏览器中可视化数据并具有轻松的用户交互性。
这是一个小例子,向您展示使用散景可以做到多么简单:
假设您有两个包含数据的 csv 文件:
# a.csv :
Time;myData
1;-2,926
2;-2,892
3;-2,89
...
#b.csv :
Datation;myData
0,000000;18,432;
10,000000;17,785;
20,000000;17,242;
...
还有一个名为“my_script”的python脚本:
from bokeh.layouts import row
from bokeh.plotting import figure
from bokeh.models.widgets import Dropdown
from bokeh.models import ColumnDataSource
from bokeh.io import curdoc
import pandas as pd
# callback to load file
def load_file(attr, old, new):
file = dropdown.value
print(file)
df = pd.read_csv(file, sep = ';', header = 0, index_col = 0, decimal = ",")
print(df)
source.data = dict(x=df.index.values, y=df['myData'].values)
# configuring dropdow widget
choices = [ ("a.csv", "C:/Test/a.csv"), ("b.csv", "C:/Test/b.csv")]
dropdown = Dropdown(label="Add condition", menu=choices)
dropdown.on_change('value', load_file)
# configuring plot
plot = figure(tools="box_zoom, hover, reset")
source = ColumnDataSource(dict(x = [], y=[]))
plot.scatter(x="x", y="y", source=source)
# add widget to bokeh root document
curdoc().add_root(row(dropdown, plot))
现在你必须启动散景服务器,例如使用命令
bokeh server --show my_script.py
--show 直接启动网页浏览器到 url http://localhost:5006/stackoverflow
您还可以通过其他方式将散景 html 代码嵌入到您的 html 代码中。但是,要使用此方法加载文件,您仍然需要运行散景服务器。有一些示例可以直接从网络浏览器上传数据,但这是另一回事
请不要说我选择用 pandas 加载数据,但还有其他方法。您当然还需要调整代码以使用 pd.read_csv() 中的参数加载数据