Google Visualization Annotated Time Line,删除数据点
Posted
技术标签:
【中文标题】Google Visualization Annotated Time Line,删除数据点【英文标题】:Google Visualization Annotated Time Line, removing data points 【发布时间】:2011-02-17 04:30:51 【问题描述】:我正在尝试构建一个图表,该图表将根据您放大的程度改变分辨率。这是您完全缩小后的样子。
所以这看起来不错,所以当我放大时,我会得到更高分辨率的数据,我的图表看起来像这样:
问题是当我缩小更高分辨率的数据时,不会从图表中清除:
图表下方的表格是表格显示DataTable中的内容。这就是绘图代码的样子。
var g_graph = new google.visualization.AnnotatedTimeLine(document.getElementById('graph_div_json'));
var table = new google.visualization.Table(document.getElementById('table_div_json'));
function handleQueryResponse(response)
log("Drawing graph")
var data = response.getDataTable()
g_graph.draw(data, allowRedraw:true, thickness:2, fill:50, scaleType:'maximized')
table.draw(data, allowRedraw:true)
我正在尝试找到一种仅显示 DataTable 中数据的方法。我曾尝试删除 allowRedraw 标志,但它会破坏缩放操作。
任何帮助将不胜感激。
谢谢
另见
Annotated TimeLine when zoomed-out, Too Many Datapoints.【问题讨论】:
我已经关注这个问题一年了,希望有人能给出答案。 【参考方案1】:在我看来,最好的解决方案是绘制每个 nth 个数据点,具体取决于您的缩放级别。在 Google 财经图表上,缩放级别是在顶部预先确定的:1m、5m、1h、1 天、5 天等。显然这正是 Google 正在做的事情。在 max 视图级别,他们正在绘制当月的点。如果您每天进行 1000 次投票(每次投票产生一个点),那么您将获得每 30,000 个 点(第一个点是本月的第一个点,并且第 30,000 个是最后一点)。
这些缩放级别中的每一个都将实现不同的数据点图。每个点都应该有一个精确到秒的时间戳,这样您就可以轻松地根据详细程度来缩放绘图。
【讨论】:
【参考方案2】:您可以删除允许重绘标志。 在这种情况下,您必须手动将数据点放入数据表中
-
实际全数据的最新日期
实际整个数据中最过时的日期。
这将保留您的缩放操作。 我认为您已经看到删除 allowRedraw 标志,但有一个小问题,闪烁整个图表。
【讨论】:
是的,我做到了,这也是我决定不使用它并使用 flot 实现自定义解决方案的原因之一。以上是关于Google Visualization Annotated Time Line,删除数据点的主要内容,如果未能解决你的问题,请参考以下文章
如何将json字符串转换为google.visualization.DataTable?
向 Google-Visualization ColumnChart 添加渐变
使用圆形边框和切片边距自定义 Google Visualization PieChart 外观
如何将Google Visualization API的日期列转换为JSON格式