我使用d3和React native中的Art创建了一个线图。
我想要一个小圆圈,它位于屏幕中央的线条上,当用户水平向后和向前滑动时,上下一行。
该行:
scaleX = d3.scale.scaleTime()
.domain([start, end])
.range([0, width]);
scaleY = d3.scale.scaleLinear()
.domain([minY, maxY]).nice()
.range([height, 0]);
lineShape = d3.shape.line()
.x((d) => scaleX(d.date))
.y((d) => scaleY(d.value))
.curve(d3.shape.curveCardinal.tension(0.5));
图表:
<ScrollView horizontal={true} onScroll={this.scrollMoved}>
<Surface width={800} height={200}>
<Group x={0} y={0}>
<Shape d={lineShape(data)} stroke="#333"/>
</Group>
</Surface>
</ScrollView>
我目前的思路是将线的X和Y坐标置于屏幕中心,然后在滚动时更新圆Y位置。 使用ScrollView我可以得到当前的X位置,但我看不出如何使用d3我可以根据这个获得Y位置。
可能有更好的方法来做到这一点,所以任何其他方法都是受欢迎的建议。