Vega Zoom Circle 装箱图
Vega Zoom Circle Packing Chart
我有点迷路了。我试图实现放大圆形装箱图,但我不知道该怎么做。有两个示例 zoomable-scatter-plot zoomable-world-map,但这两种方法似乎都不太适合我的图表类型。
任何 pointers/examples 将不胜感激。
免责声明:我仍然没有太多时间进入 Vega,但我找到了解决这个特定问题的方法。我想它在技术上还不成熟,但它确实有效。
基本思想是缩放圆圈,然后将它们移动到图形的中间。为此,我添加了这些信号:
"signals": [
{
"name": "scaleX",
"value": 1,
"on": [{"events": "click", "update": "(width/2)/datum.r"}]
},
{
"name": "scaleY",
"value": 1,
"on": [{"events": "click", "update": "(height/2)/datum.r"}]
},
{
"name": "xTranslation",
"value": 0,
"on": [{"events": "click", "update": "(width/2) - datum.x * scaleX"}]
},
{
"name": "yTranslation",
"value": 0,
"on": [{"events": "click", "update": "(height/2) - datum.y * scaleY"}]
}
]
并在标记编码中使用它们:
"update": {
"x": {"signal": "datum.x * scaleX + xTranslation"},
"y": {"signal": "datum.y * scaleY + yTranslation"},
"size": {"signal": "4 * datum.r * datum.r * scaleX * scaleY"},
"stroke": {"value": "white"},
"strokeWidth": {"value": 0.5}
}
我有点迷路了。我试图实现放大圆形装箱图,但我不知道该怎么做。有两个示例 zoomable-scatter-plot zoomable-world-map,但这两种方法似乎都不太适合我的图表类型。
任何 pointers/examples 将不胜感激。
免责声明:我仍然没有太多时间进入 Vega,但我找到了解决这个特定问题的方法。我想它在技术上还不成熟,但它确实有效。
基本思想是缩放圆圈,然后将它们移动到图形的中间。为此,我添加了这些信号:
"signals": [
{
"name": "scaleX",
"value": 1,
"on": [{"events": "click", "update": "(width/2)/datum.r"}]
},
{
"name": "scaleY",
"value": 1,
"on": [{"events": "click", "update": "(height/2)/datum.r"}]
},
{
"name": "xTranslation",
"value": 0,
"on": [{"events": "click", "update": "(width/2) - datum.x * scaleX"}]
},
{
"name": "yTranslation",
"value": 0,
"on": [{"events": "click", "update": "(height/2) - datum.y * scaleY"}]
}
]
并在标记编码中使用它们:
"update": {
"x": {"signal": "datum.x * scaleX + xTranslation"},
"y": {"signal": "datum.y * scaleY + yTranslation"},
"size": {"signal": "4 * datum.r * datum.r * scaleX * scaleY"},
"stroke": {"value": "white"},
"strokeWidth": {"value": 0.5}
}