我如何更新图表中的数据? 我在linqpad中使用plotly.net: 我使用plotly.net.csharp.chart.scatter创建图表 我倾倒() - >它很好地显示 我也倾倒()linqpad按钮 如何更新

问题描述 投票:0回答:1
创建图表

Idump()it->它很好地显示了
    I还倾倒()linqpad按钮
  • 如何在按钮onclick处理程序中更新图表数据?
  • 我想避免(出于完整的原因):
destroying并重新创建整个图表

绘制所有可能的图表,并使用(https://plotly.net/chart-layout/sliders.html

)中解释的技术一次仅保留1个可见的图表。

我知道使用plotly.graph_objects在Python中可以使用。 我已经尝试访问基础跟踪并在其上设置数据,但这仅在倾倒图表之前就可以起作用,而不是在倾倒图表之前。 我在这里最初的尝试创造了要点:
    https://gist.github.com/vlad2048/0c90c14a0fb1778c17427a6ab262c01f

update(2025-01-30):

@Joe的解决方案产生了闪烁:


我在Python笔记本中做了一个最小的例子。 它的外观(请注意,没有闪烁):

import plotly.graph_objects as go from ipywidgets import widgets x = [1, 2, 3] ys = [[1, 2, 3], [3, 2, 1]] idx = 0 def getY(): global idx idx = idx + 1 return ys[idx % 2] fig = go.FigureWidget() scatter = go.Scatter(x = x, y = getY()) fig.add_trace(scatter) btn = widgets.Button(description='Toggle') def onClick(_): fig.data[0].y = getY() btn.on_click(onClick) widgets.VBox([btn, fig])

enter image description here如果您在绘图GenericChart

类中查看,您会发现它定义了一种私有方法,该方法告诉linqpad在转储时要输出什么。这基本上是这样做的:

ToDumpenter image description here 因此,您可以使用相同的技术手动倾倒情节图表如下:

return new LINQPad.Controls.IFrame(GenericChart.toEmbeddedHTML(chart));
通过持有LinqPad Iframe参考,您稍后可以更新其SRCDOC属性:
c# plot linqpad plotly.net
1个回答
0
投票
new LINQPad.Controls.IFrame(GenericChart.toEmbeddedHTML(chart)).Dump();

	
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.