我正在使用plotly dash创建一个web应用程序,用于图形生成和回调处理。我使用dash核心组件v0.18.1
尝试动态添加图形时(每次单击按钮时,都会添加新图形),控制台中会出现错误:
bundle.js?v=0.11.2:9未捕获(promise中)错误:未找到dash_core_组件。在Object.resolve(bundle.js?v=0.11.2:9)在s(bundle.js?v=0.11.2:9)在Array.map()在s(bundle.js?v=0.11.2:9)在Array.map()在s(bundle.js?v=0.11.2:9)在e.value(bundle.js?v=0.11.2:9)在p-dom@15.4.2.min.js?v=0.11.2:13)
我只有一个空白页面,上面有一个按钮和一个点击回调。回调只是用一个图填充一个div。
布局代码:
class ContentController(object):
graph_names = None
def __init__(self):
self.graph_names = []
# UNCOMMENT THIS LINE TO MAKE IT WORK
# self.graph_names = ["start_graph"]
def layout(self):
return html.Div([html.Button("Add Graph", id='button_id'),
html.Div(self.graphics_layout, id='graphics_div')],
id='main_div')
@property
def graphics_layout(self):
graphs = []
for name in self.graph_names:
graph = self.create_graph()
graphs.append(dcc.Graph(id=name, figure=graph, style= {'width': '600px', 'height': '300px'}))
return graphs
def create_graph(self):
graph_data = {
'data': [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
],
'layout': {
'title': 'Dash Data Visualization'
}
}
return graph_data
回调代码
@app.callback(
Output(component_id='graphics_div', component_property='children'),
[Input(component_id='button_id', component_property='n_clicks')]
)
def callback_function(n_clicks):
print(n_clicks)
if n_clicks is None:
return ""
name = "graph_" + str(n_clicks)
content.graph_names.append(name)
return content.graphics_layout
奇怪的是,如果加载页面时出现另一个图形,则一切正常。这是Dash中的一只虫子吗?
原来这是Dash中的一个缺陷。
解决方法:在加载时创建一个隐藏图,如下所示:
app.layout = html.Div([
html.Div(id='content'),
dcc.Location(id='location', refresh=False),
html.Div(dt.DataTable(rows=[{}]), style={‘display’: ‘none’})
])
原因是,仅当页面加载时才会加载所需的库,因此,如果加载时布局中不存在图形,则不会加载某些破折号库。
更多信息可以在仪表板发行板上找到:这里和这里
我的dash应用程序具有基于可用dash留档中找到的食谱的导航。它的工作原理,但它不好看。谁知道介绍菜单的更好方法?我不想开发一个特殊的流星组件,但我很乐意使用目前可用的框架之一(引导,语义学,...)。
问题内容: 如何从不带破折号的字符串中创建java.util.UUID? 问题答案: Clojure的带 标签文字是对的传递。并且,将其除以“-”并将其转换为两个值。(UUID的格式已标准化为8-4-4-4-12十六进制数字,但“-”实际上仅用于验证和视觉识别。) 直接的解决方案是重新插入“-”并使用。 如果您想要没有正则表达式的内容,则可以使用和。
我希望能够结合Kibana术语图(能够基于特定属性值的唯一性创建bucket)和直方图(基于查询将数据分离为bucket,然后基于时间说明日期)的功能。 总的来说,我想创建一个直方图,但我只想根据一个查询的结果创建直方图,而不是像Kibana演示应用程序中那样创建多个查询。相反,我希望每个bucket都是根据特定字段的唯一值动态创建的。例如,考虑以下查询返回的数据: 还假设每个记录都有一个字段,用
问题内容: 当字符串具有破折号时,我无法从json对象检索值: 如果我尝试引用已解析的文件,它将返回但jsonObj.user_id将返回6789 我没有办法修改外部api调用返回的值,并且试图解析返回的字符串以删除破折号也会破坏传递的url等。救命? 问题答案: 是减法表达式(即)。 要访问包含不能出现在标识符中的字符的键,请使用方括号:
这是如何与datetime一起工作的?我不能绘图日期时间x日期时间对象?这个问题是由于在y轴上绘制“小时/分钟”时的一些问题,它变得混乱。 在这个例子中,我的小时图从11:13开始,到10:54结束,但是范围是08:33到11:55 在matplotlib中打印时,它可以识别范围(我想要的),但在dash中,它会创建一个从最低值到最高值的阶梯 是的,我已经尝试过'yax':{tickform:'%
我需要在我的Android应用中画一张“闭图”,像这样: 数据的xIndex先增加后减少。如本例所示: 当我尝试用MPAndroidChart中的数据绘制一条线时,它只呈现数据的前半部分(在xIndex下降之前)。其他数据未显示。 我怎样才能用MPAndroidChart正确地绘制这个数据呢?