0

x 軸に日付を含む散布図が必要です。

使用する ChartFactory.getTimeChartViewと折れ線グラフが表示され、問題は次のとおりです。

現在の日付を x 軸、データ (ユーザー入力) を y 軸としてプロットを作成します。これらのデータ (日付とユーザー データ) をリストとファイルに保存します。

ユーザーは 1 日に複数回データを入力する場合があります。一部のデータは同じである可能性があるため、折れ線グラフを使用するとプロットが台無しになります。そのため、散布図が必要です。

1) どうすればこれを行うことができますか?

2)また、Linegraph を使用するために、X 軸にカスタム ラベルを追加する例を教えてもらえますか?

- - - - - - - - - - - アップデート - - - - - - - - - - - - - - -----

私は今これをやろうとしています(上記の私の質問のようにできるかどうか知りたいです

日付を List String として保存します。

List<String> dates_asString=new ArrayList<String>();

私はそれらを保存します:

SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy"); 
        Date d=new Date();
String formattedDate=thedate.format(d);
        dates_asString.add(formattedDate);

 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
              for (int i=0;i<mydata.size();i++){
                    bw.write(mydata.get(i)+","+dates_asString.get(i)+"\n");//+"\n");

折れ線グラフ:

private static List<String> dates_asString = new ArrayList<String>();
    private static List<Double> data = new ArrayList<Double>();
    private static List<Date> dates_asDates = new ArrayList<Date>();


loadfunc();    

//trying to copy the dates_asString to dates_asDates in order to use them in TimeSeries

 SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        Date convertedDate=new Date();
        try{
       for (int k=0;k<dates_asString.size();k++){
        convertedDate = formatter.parse(dates_asString.get(k));
        date_asDates.add(convertedDate);
       }
        }catch (ParseException e){

            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        TimeSeries series = new TimeSeries("Showing data");
        for (int i=0;i<date_asDates.size();i++){    

            series.add(date_asDates.get(i),data.get(i));    
        }


mRenderer.setXLabels(0);
        for (int i=0;i<dates_asString.size();i++){
            mRenderer.addXTextLabel(i,dates_asString.get(i));

        }

public void loadfunc(){

    SimpleDateFormat thedate = new SimpleDateFormat("dd/MM/yyyy"); 
    Date d=new Date();

    String formattedDate=thedate.format(d);

BufferedReader br = new BufferedReader(new InputStreamReader(fis));
            ....
                     data.add(Double.parseDouble(splitLine[0]));
                    dates_asString.add(formattedDate);
4

3 に答える 3

0

チャートの散布タイプについて:

たぶん、適切なパラメータを XYSeriesRenderer に設定できます:

XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.GREEN);//green point
r.setPointStyle(PointStyle.CIRCLE);//point in shape of circle
r.setFillPoints(true);//enable points
r.setLineWidth(0);//set line to 0 width - invisible
mRenderer.addSeriesRenderer(r);

そしてあなたが工場を呼んでいるとき:

mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer,"H:mm:ss");

私はそれがきれいで適切な方法ではないことを認識していますが、それをテストしたり、詳細を把握したりするためのアンドロイドはここにありません...

私はそれをテストしていないので、私にフィードバックをください:)。

それが役立つことを願っています、トニ

于 2013-04-19T12:34:21.387 に答える