【问题标题】:Search for and zoom in to a scatter plot point (Highcharts, react.js)搜索并放大到散点图(Highcharts,react.js)
【发布时间】:2016-01-25 04:28:01
【问题描述】:

我在 react.js 中使用 highcharts 库,它运行良好。但是,我正在绘制约 15,000 个分散的点,在所有这些中找到我想要的有点棘手。我希望能够搜索一个特定的点,因为每个点都有自己唯一的名称属性以及它的 x 和 y 坐标(不是 id,但如果这使解决方案更容易,我可以将名称作为 id)。找到该点后,图形应该放大一点,因为在默认缩放级别下,点有很多重叠,所以只是让它闪烁/变大/没有太大帮助。我查看了 Highcharts API 文档,但找不到任何可以手动缩放到指定坐标的内容。

我找到了mapZoom 函数,但这仅适用于地图,而且……嗯,这不是地图。这是一个散点图。

另外,由于这是反应,所以要查看如何访问图表对象来处理它有点棘手,因为它存在的唯一时间是它被返回以进行渲染:

var CosinePlot = React.createClass({
	componentDidMount: function() {
		let chart = this.refs.chart.getChart();
	},

	render: function() {
		return <ReactHighcharts config={plotConfig} isPureConfig={true}/>;
	}
});

【问题讨论】:

    标签: javascript highcharts reactjs


    【解决方案1】:

    如果您知道要放大的确切点,只需获取xy。然后使用chart.xAxis[0].setExtremes(min, max)chart.yAxis[0].setExtremes(min, max) 放大该点。

    关于访问图表对象,我猜你正在使用这个this wrapper。有一个解释如何检索该图表对象here

    【讨论】:

    • 如何从其他函数访问该图表变量?我需要使用setExtremes 调用来响应按钮点击等,这在componentDidMount 中不一定会发生。
    • 作为参考,我最终使用 chart.xAxis[0].zoom(min,max)chart.showResetZoom() 来完成我的缩放,因为在找到指向这些呼叫的答案之前,我无法显示重置按钮.还需要chart.redraw()
    • 您可以在创建图表时将图表对象存储在变量中。或者,当使用 jQuery 时,您可以使用var chart = $("#container").highcharts() 获取图表。或者,如果您在网站上只有一张图表,请使用var chart = Highcharts.charts[0];。当然,如果你想得到Reset Zoom按钮,那就打电话给chart.showResetZoom()。请注意,showResetZoom() 函数不是官方 API 的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    相关资源
    最近更新 更多