AndroidPlot更改绘图中特定点的颜色

AndroidPlot更改绘图中特定点的颜色,android,androidplot,Android,Androidplot,我一直在寻找这个问题的答案,但因为我找不到任何答案,我将发布这个问题 我画了一个图,下面的列表显示了一些数据,每行的一个参数在图中绘制 我试图在用户单击列表的一个视图时更改点的颜色,以在绘图中反映行与点匹配,但我无法复制它 有没有办法得到图形的一个特定点,改变它的颜色 提前感谢。我不知道您想做的是否可行,但您可以尝试在绘图中添加一个系列,其中包含用户单击时要高亮显示的点。当一个新的点击完成后,你只需要删除添加的序列并添加一个包含新点的新序列 添加的系列必须具有不同的样式,以便您可以看到“更改的颜

我一直在寻找这个问题的答案,但因为我找不到任何答案,我将发布这个问题

我画了一个图,下面的列表显示了一些数据,每行的一个参数在图中绘制

我试图在用户单击列表的一个视图时更改点的颜色,以在绘图中反映行与点匹配,但我无法复制它

有没有办法得到图形的一个特定点,改变它的颜色


提前感谢。

我不知道您想做的是否可行,但您可以尝试在绘图中添加一个系列,其中包含用户单击时要高亮显示的点。当一个新的点击完成后,你只需要删除添加的序列并添加一个包含新点的新序列

添加的系列必须具有不同的样式,以便您可以看到“更改的颜色”,并且必须是最后添加的系列,以便它将处于放弃状态

希望能有帮助


编辑 要使其适应您的用例,您可以做的是扩展
XYPlot
类,创建
SeriesType highlightedPoint
属性,并添加如下方法(未测试):


每次用户单击列表时,您只需在绘图实例上调用此方法。

我不知道您尝试执行的操作是否可行,但您可以尝试向绘图添加一个序列,其中包含用户单击时要高亮显示的点。当一个新的点击完成后,你只需要删除添加的序列并添加一个包含新点的新序列

添加的系列必须具有不同的样式,以便您可以看到“更改的颜色”,并且必须是最后添加的系列,以便它将处于放弃状态

希望能有帮助


编辑 要使其适应您的用例,您可以做的是扩展
XYPlot
类,创建
SeriesType highlightedPoint
属性,并添加如下方法(未测试):


每次用户单击列表时,您只需在绘图实例上调用此方法。

作为一种解决方法,它就像一个符咒,但如果能够从绘图中选择一个点并更改其颜色,那就太好了,谢谢!我有点同意你的观点,但我认为当你在一个绘图中有多个系列时,这并不是那么容易和严格。我没有查看库的内部代码,但是如果你在一个列表/映射中有所有的XYSeries,你可以访问其中一个,然后自己操作那个XYSeries,你不需要查看库代码来扩展一个类。我刚才给了你一个实现的例子,你可以用它来让你的功能更容易使用。如果你有一个能满足你需求的工作实现,这对我来说是很好的:)是的,当我看到你的第一个回复时,我已经完成了实现,我的评论只是对库本身未来更新的一个建议。谢谢作为一个解决办法,它就像一个魔咒,但是如果能从情节中选择一个点并改变它的颜色,那就太好了,谢谢!我有点同意你的观点,但我认为当你在一个绘图中有多个系列时,这并不是那么容易和严格。我没有查看库的内部代码,但是如果你在一个列表/映射中有所有的XYSeries,你可以访问其中一个,然后自己操作那个XYSeries,你不需要查看库代码来扩展一个类。我刚才给了你一个实现的例子,你可以用它来让你的功能更容易使用。如果你有一个能满足你需求的工作实现,这对我来说是很好的:)是的,当我看到你的第一个回复时,我已经完成了实现,我的评论只是对库本身未来更新的一个建议。谢谢
public void highlightPoint(Number x, Number y, FormatterType formatter){
    // if there is already a highlighted point we remove it (we want to highlight just one point)
    if(highlightedPoint != null) {
        removeSeries(highlightedPoint);
        highlightedPoint = null;
    }

    // we need to highlight the new point, which means adding a serie on top of the others
    highlightedPoint = new SimpleXYSeries("Highlighted Point");
    highlightedPoint.addFirst(x,y);
    addSeries(highlightedPoint, formatter);
}