簡體   English   中英

如何在MPAndroid圖表中動態設置X軸和Y軸的數據

[英]How to set a data of X Axis and Y Axis in MPAndroid Chart Dynamically

誰能告訴我如何用不同的數據點動態地將數據設置為折線圖?

我的代碼->

try {
 for (int u = 0; u < dataList.size(); u++) {
  Log.e("Data_List_Size", dataList.size() + "");
  for (int j = 0; j < trafficFilter.dataPoints.size(); j++) {
   yVals.add(new Entry(trafficFilter.dataPoints.get(u).getY(), u));
   xVals.add(String.valueOf(trafficFilter.dataPoints.get(j).getX()));
  }
  set1 = new LineDataSet(yVals, "");
  dataSets.add(set1); // add the datasets 

提前致謝

對於BarChart,創建一個列表並像這樣添加您的數據->

List<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(0f, 30f));
entries.add(new BarEntry(1f, 80f));
entries.add(new BarEntry(2f, 60f));
entries.add(new BarEntry(3f, 50f)); 
                                    // gap of 2f
entries.add(new BarEntry(5f, 70f));
entries.add(new BarEntry(6f, 60f));

BarDataSet set = new BarDataSet(entries, "BarDataSet");

對於“其他圖表”,過程相同,只是對不同類型的圖表使用不同的對象。 請參閱更多信息。

您的整個代碼是這樣->

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // in this example, a LineChart is initialized from xml
    LineChart chart = findViewById(R.id.chart);

    //  Adding Data to show it inside the Graph..
    EntryClass entryClass = new EntryClass();

    for (int u = 0; u < dataList.size(); u++) {
        Log.e("Data_List_Size", dataList.size() + "");
        for (int j = 0; j < trafficFilter.dataPoints.size(); j++) {
            entryClass.AddintoList(trafficFilter.dataPoints.get(j).getX(),trafficFilter.dataPoints.get(u).getY(), u));
        }
    }

    LineDataSet lineDataSet = new LineDataSet(entryClass.getEntryList(),"Sample Data");
    LineData lineData = new LineData(lineDataSet);
    chart.setData(lineData);
    chart.invalidate();
}

這就是您的EntryClass的樣子->

import com.github.mikephil.charting.data.Entry;

import java.util.ArrayList;
import java.util.List;

public class EntryClass {
    private List<Entry> entryList;

    EntryClass(){
        entryList = new ArrayList<>();
    }

    public List<Entry> getEntryList() {
        return entryList;
    }

    public void AddintoList(float X,float Y) {
        entryList.add(new Entry(X,Y));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM