问题标签 [observablehq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
74 浏览

javascript - 在堆积面积图的狭窄区域隐藏标签(D3 Observable)

我正在 Observable 中制作一个 100% 堆积面积图,每个系列都有标签,但我有很多系列,想隐藏太小而无法显示的系列的标签(目前它们都被压在每个系列的顶部)其他)。有人能就我如何做到这一点提供建议吗?

我创建了一个 if else 语句,并且知道我需要以某种方式说,如果该值低于总数的某个份额,则不要显示标签,但我正在努力弄清楚该语句中究竟需要做什么。如果有人能够提供建议,那将非常有帮助!

当前笔记本:https ://observablehq.com/d/b981c470fa4ebddc

0 投票
0 回答
76 浏览

d3.js - 基于 vega lite API 的具有定量和标称属性的交叉过滤器

我想创建一个基于 vega lite API 的通用交叉过滤器。定量属性应显示为直方图,名义/有序属性应显示为条形图。

在这个可观察的(https://observablehq.com/@ee2dev/exploring-a-csv-file-with-vega-lite)中,我尝试实现它(参见单元格 vis3 - 最后一个可视化旁边)。

这是代码:

然而,该代码至少有两个缺点:

  • 画笔选择始终是 selectInterval()。我希望它是定量属性的 selectInterval() ,否则是 selectMulti()

  • 什么是更有效的方法来完成这项工作?我为定量和其余属性创建了两个不同的图表,仅仅是因为后者不需要分箱。

任何帮助将不胜感激!

0 投票
0 回答
26 浏览

d3.js - 如何继承工具提示的数字/日期格式,而不仅仅是轴?

如何将格式化规则应用于工具提示?

在下面的示例中(来自https://observablehq.com/@ee2dev/exploring-a-csv-file-with-vega-lite中的单元格vis1),数字和时间格式仅应用于轴。

任何帮助将不胜感激。

0 投票
1 回答
43 浏览

javascript - d3 示例,chart = { ... } 是函数、类还是对象?

在所有像这样的 d3 示例中,svg 附加部分代码都封装在

我首先认为它是一个函数,因为其中有一个 return 语句。但是我在 MDN 中读到的所有箭头函数似乎都需要一个箭头 =>。

这是一个对象吗?但是对象是带有冒号的变量和函数,但这个不是。

我对它是什么感到困惑。你能帮我理解吗?

0 投票
2 回答
65 浏览

d3.js - 我需要做什么才能使用 D3.js 更改对象的大小和颜色?

请参阅 Observablehq 笔记本中的代码:https ://observablehq.com/@erayalan/radial-scatter-plot

我试图了解如何更改这件作品中每个项目的大小和颜色:

0 投票
0 回答
30 浏览

javascript - 在 D3 中为传单设置动画而不更新底图

我正在尝试更新 D3 中传单地图顶部的 choropleth 图层。然而,当它被动画化时,底图也会随着它的更新而“闪烁”。我怀疑有一种方法可以只更新 choropleth 层,但运气不佳。

这是一个显示折线且底图未更改的示例:https
://bl.ocks.org/gwene/f3929040cca81742c29af297efeda7ab 但是,这map.getPanes().overlayPane不起作用。

我的代码和动画在这里:https ://observablehq.com/@tommlogan/resilience-florence

0 投票
1 回答
276 浏览

javascript - 如何使用 .NET 5 应用程序中的 observablehq/plot?

我们的团队打算从一个用 C# 编写并在 .NET 5 上运行的应用程序中使用 JavaScript 库observablehq/plot。作为概念证明,我们能够成功地使用该库在Node.js上的单独进程中运行。这种方法的缺点是我们需要自己实现所有数据序列化和进程间通信,并且我们需要在我们的应用安装程序中捆绑Node.js。我们正在寻找一种不需要Node.js的替代方法,而是直接在我们的 .NET 应用程序中托管 V8 JavaScript 引擎。目前,我们正在考虑为此使用ClearScript包。虽然我们能够使用它成功运行简单的 JavaScript 代码,但我们发现observablehq/plot及其依赖项使用了一些存在于Node.js中的 API ,但显然在ClearScript开箱即用中不可用(似乎Node.js在 JavaScript 中实现了其中一些 API,而在 C++ 中实现了一些 API) . 使这些实现可用于在 .NET 应用程序中运行的ClearScript似乎是一项重大任务,我目前无法估计其成本。

我想问是否有人必须解决相同或相似的问题,您会推荐什么方法?有没有一种简单的方法可以让所有必要的 API 都可用于在ClearScript上运行的observablehq/plot?我应该考虑在 .NET 应用程序中托管 Chromium/Edge 浏览器引擎吗?我还没有尝试过,但我认为这是可能的,因为我的理解(如果我错了,请纠正我)是WebView2控件可以用于在 .NET 上运行的 WPF 应用程序中,并且它是使用Chromium和 V8 JavaScript实现的引擎。您还有其他方法可以推荐吗?


更新:应用 GUI 建立在AvaloniaSkiaSharp 之上。最终我们可能会选择另一个图表库,也许不是用 JavaScript 编写的。但我手头的任务是专门研究是否以及如何在我们的应用程序中使用 JavaScript 库,以observablehq/plot为例,研究它的特性和性能特征。

0 投票
1 回答
29 浏览

d3.js - 如何将 d3 图表放入我的 chartBox?

我想将从 observablehq 网站下载的“Zoomable sunburst”图表放入 svg 框中。

如何编辑模块的源代码?

原始源代码可在此链接中找到(https://observablehq.com/@d3/zoomable-sunburst?collection=@observablehq/data-visualization-for-developers)。我没有改变图表的设计,只改变了 index.html 页面。

0 投票
1 回答
346 浏览

plot - 在 Observable Plot 中,如何从 bin() 变换中对堆栈进行排序/排序?

我正在 Observable 的新Plot库中处理堆积条形图。来自 Vega 和 D3 的情况还不错,但我无法找到或弄清楚如何从我正在使用的Plot.binX()中订购生成的堆叠条。

我今天的实际标记看起来像这样:

Plot.binX()做得很好,产生一个图表,其中堆栈根据输入顺序进行排序。

我希望根据总和对堆栈进行排序,事实上,如果我添加Plot.stack选项order(参见上面的注释行),我可以按总和排序:

错误排序的堆叠条

关闭!现在我只需要颠倒顺序。我假设,因为我可以使用该order选项,也许我也可以使用该reverse选项(参见上面的注释行)。 那似乎行不通

我的第二个假设是,由于这些转换应该是“可组合的”,我应该能够将 mybinX与 a结合起来stackY,但我找不到这种组合的例子。我尝试过Plot.stackY(Plot.binX({...}, { ... order:"sum", reverse:true }), 和类似的变体,但它们似乎也不起作用

总之,我很想知道如何在使用 binX 的同时控制堆叠条形图中的堆叠顺序。谢谢!

0 投票
1 回答
33 浏览

javascript - 如何在 ObservableHQ 的更多单元格中呈现相同的输入元素

假设我在 Observablehq 中有以下复选框元素:

我想沿着笔记本在更多不同的单元格中呈现相同的元素,并且我想同步他们的所有选择。有没有办法做到这一点?