2016-05-27 11 views
0

enter image description here私のアプリでは、Y軸に 'Charging'、 'Discharge'、 'C​​harging Failed'のような文字列が必要です。これを使ってグラフをプロットし、問題のパラメータをAndroid Plotのこれらの文字列に沿って描くことは可能ですか?文字列パラメータのAndroidプロット

+0

「描画された」とはどういう意味ですか?各状態を表す実際のイメージはありますか?これ以上のことを知らなければ、これはステップチャートスタイルを使用するための完璧なユースケースのように思えます。 – Nick

+0

こんにちは@Nick、状態はcsvファイルから読み込まれ、編集のように表示されます。 – AR06

答えて

0

私はまだ私は希望の可視化を理解していますが、ここで私は示唆している基本的な手順はない100%確信している:

を開始するには、あなたはXYSeriesへのあなたのCSVデータを変換する必要があるとしていますデータ。これを達成するには、現在のX/Y文字列値を数値にマップする必要があります。

// parses a CSV string into an XYSeries 
// for example, DISCHARGE = 1, MPPT = 2 
public XYSeries convertCSVToXYSeries(String csvContent) {...} 

次に、セットアップあなたのプロットなどあなたが他のXYPlotためAndroidplot Quickstart Tutorialに示すだろうとほとんど同じ方法:私はこのようになります方法を作成することをお勧めしたいです。最後に

StepFormatter stepFormatter = new StepFormatter(Color.BLUE, Color.BLUE); 
stepFormatter.setVertexPaint(null); // don't draw individual points 
plot.addSeries(series, stepFormatter); 

、自分のステータスの文字列の代わりに、彼らはきたint型の値を印刷するには、カスタム範囲値フォーマッタを追加します:あなたは、あなたが戻っconvertCSVToXYSeriesからあなたのプロットを取得XYSeriesを追加XYStepFormatterを使用

にマッピングされました:

 // create a custom getFormatter to draw our state names as range tick labels: 
     plot.setRangeValueFormat(new Format() { 
      @Override 
      public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) { 
       Number num = (Number) obj; 
       switch(num.intValue()) { 
        case 1: 
         toAppendTo.append("DISCHARGE"); 
         break; 
        case 2: 
         toAppendTo.append("MPPT"); 
         break;      
        default: 
         toAppendTo.append("Unknown"); 
         break; 
       } 
       return toAppendTo; 
      } 

      @Override 
      public Object parseObject(String source, ParsePosition pos) { 
       return null; 
      } 
     }); 
関連する問題