从XYPlot中删除图例

时间:2014-08-01 11:23:29

标签: android androidplot

在我的项目中使用AndroidPlot,到目前为止它还很棒。这就是我得到的。

plot with androidplot showing 4 series and a legend

现在我正尝试从图例中删除其中一个系列指示符。实际上我只想保留第一个(蓝色的)导致其他人自我解释。

我不知道如何删除自己的图例(请参阅https://stackoverflow.com/a/13413758/665823了解该问题)。

如果有人可以帮助我,我会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我终于找到了一个允许我做我需要的东西。要实现这一点,我需要显示的系列必须首先添加到我需要隐藏的系列中:

// I add the blue serie first
LineAndPointFormatter mFormat = new LineAndPointFormatter();
mFormat.configure(context, R.xml.plot_blue);
graphView.addSeries(serieMesures, mFormat);

// I add the other colors after
for (XYSeries serie : seriesSeuils) {
     LineAndPointFormatter sFormat = new LineAndPointFormatter();
     if (serie.getTitle().equals("RED") {
        sFormat.configure(context, R.xml.plot_red);
     } 
     else if (serie.getTitle().equals("ORANGE")) {
        sFormat.configure(context, R.xml.plot_orange);
     }
     else if (serie.getTitle().equals("YELLOW")) {
        sFormat.configure(context, R.xml.plot_yellow);
     }
     graphView.addSeries(serie, sFormat);
}

然后我创建了一个传奇,其中只有足够的空间来展示我需要的系列(在我的例子中只是第一个)。

// This is what does the trick! A Table with 1 line and 1 column 
// so the other series can't be rendered in the LegendWidget
graphView.getLegendWidget().setTableModel(new DynamicTableModel(1, 1));

// Other customizations (size and position)
graphView.getLegendWidget().setSize(new SizeMetrics(55, SizeLayoutType.ABSOLUTE, legendWith, SizeLayoutType.ABSOLUTE));
graphView.getLegendWidget().setPositionMetrics(
     new PositionMetrics(20,
                         XLayoutStyle.ABSOLUTE_FROM_RIGHT,
                         20,
                         YLayoutStyle.ABSOLUTE_FROM_TOP,
                         AnchorPosition.RIGHT_TOP));
graphView.getLegendWidget().setBackgroundPaint(bgPaint);
graphView.getLegendWidget().setTextPaint(txPaint);
graphView.getLegendWidget().setBorderPaint(brPaint);
graphView.getLegendWidget().setPadding(10, 1, 10, 1);

瞧!

androidplot showing 4 series and just one in the legendwidget