使用破折号和Python绘图快速可视化大型表格
我正在使用Dash DataTable来表示氨基酸序列(字符序列)并可视化它们之间的差异(是的,我知道我可以使用Dash_生物对齐图,但我不想,对于清晰地可视化差异来说,它是彩色的,毫无用处) 我已经做了23个氨基酸序列(23个表行)x183个氨基酸(183个表列)。我的问题是,我通常希望表示100多行x100多列,Dash需要很长时间才能更新这样大小的表。你知道其他更快的可视化表格的方法吗(我可以集成到我的Dash应用程序中)使用破折号和Python绘图快速可视化大型表格,python,datatable,plotly,visualization,plotly-dash,Python,Datatable,Plotly,Visualization,Plotly Dash,我正在使用Dash DataTable来表示氨基酸序列(字符序列)并可视化它们之间的差异(是的,我知道我可以使用Dash_生物对齐图,但我不想,对于清晰地可视化差异来说,它是彩色的,毫无用处) 我已经做了23个氨基酸序列(23个表行)x183个氨基酸(183个表列)。我的问题是,我通常希望表示100多行x100多列,Dash需要很长时间才能更新这样大小的表。你知道其他更快的可视化表格的方法吗(我可以集成到我的Dash应用程序中) 我的更新列和数据的回调函数很快。问题在于Dash何时读取此类数据
- 我的更新列和数据的回调函数很快。问题在于Dash何时读取此类数据
#Sequence Comparison
html.Div([
dcc.Loading(id='file-loader', type="default", children=[html.Div([
html.H6('Sequence Comparison within a cluster.'),
html.Label('This is a range slider'),
dcc.RangeSlider(
id='column-slider',
min=0,
max=182,
step= 1,
value= [0,0], #A slider that allows a range specifications
marks= af.getTableSliderMarks()
),
dash_table.DataTable(id = 'seq_comparison_table')
])]),
抱歉,该消息是西班牙语的,但当网页不应答时,它是常见的Chrome消息
欢迎来到堆栈溢出。你能把你的代码的相关部分分享给我们吗?如果没有它,你的问题就有点猜疑了。恐怕我不能分享可复制的代码。我想你可以考虑使用一些分页符,这样就不必同时渲染所有的东西。或者从破折号数据表切换到简单的破折号HTML表。这实际上是一个令人难以置信的建议。这是有道理的,而且很有效,非常感谢。
@app.callback(
[Output('seq_comparison_table', 'data'),
Output('seq_comparison_table', 'style_data_conditional')],
[Input('clustering-3D', 'clickData'),
Input('clustering-3D', 'figure'),
Input('column-slider', 'value'),
Input('HLA-dropdown-1', 'value')])
def click_data(clickData, clust_data, slider_range, hla_type):
#Code to fill table_data and style_data_conditional (not so relevant)
#when table_data == dictionary of 23 rows and 183 columns(or less). Then Dash DataTable is updated after approx 15 seconds.
#when table_data == dictionary of 100 rows and 100 columns(For example). Then Dash DataTable takes long times to update (Chrome throws a message, that I attach as a picture later in this post, before finishing the task)
return table_data, style_data_conditional
@app.callback(Output('seq_comparison_table', 'columns'),[Input('column-slider','value')])
def updateComparisonTableColumns(slider_range):
#Code to fill columns variable
return columns