Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除或编辑MPAndroidChart-StackedBarChart-条目?_Java_Android_Charts_Mpandroidchart - Fatal编程技术网

Java 如何删除或编辑MPAndroidChart-StackedBarChart-条目?

Java 如何删除或编辑MPAndroidChart-StackedBarChart-条目?,java,android,charts,mpandroidchart,Java,Android,Charts,Mpandroidchart,我的堆积条形图在中运行得很好,但我正在尝试删除或编辑条形图中的值。但是我找不到任何可以修改的代码 我不认为我的代码是非常有用的,但在这里它是 private void initStackedBarChartStuff() { mMonths = dfs.getShortMonths(); mChart = (BarChart) mContext.findViewById(R.id.chart1); mChart.setOnChartValueSelectedListen

我的堆积条形图在中运行得很好,但我正在尝试删除或编辑条形图中的值。但是我找不到任何可以修改的代码

我不认为我的代码是非常有用的,但在这里它是

private void initStackedBarChartStuff() {
    mMonths = dfs.getShortMonths();
    mChart = (BarChart) mContext.findViewById(R.id.chart1);
    mChart.setOnChartValueSelectedListener(this);

    mChart.setDescription("");

// if more than 60 entries are displayed in the chart, no values will be
// drawn
    mChart.setMaxVisibleValueCount(30);

// scaling can now only be done on x- and y-axis separately
    mChart.setPinchZoom(false);

    mChart.setDrawGridBackground(false);
    mChart.setDrawBarShadow(false);

    mChart.setDrawValueAboveBar(false);

// change the position of the y-labels
    YAxis yLabels = mChart.getAxisLeft();
    yLabels.setValueFormatter(new MyYAxisValueFormatter());
    mChart.getAxisRight().setEnabled(false);
    mChart.getAxisLeft().setEnabled(false);

    XAxis xLabels = mChart.getXAxis();
    xLabels.setPosition(XAxis.XAxisPosition.TOP);

    Legend l = mChart.getLegend();
    l.setPosition(Legend.LegendPosition.BELOW_CHART_RIGHT);
    l.setFormSize(8f);
    l.setFormToTextSpace(4f);
    l.setXEntrySpace(6f);

// mChart.setDrawLegend(false);
}
填写堆叠条形图

private void fillStackedBarChart(Vector drawingData, Vector drawingIntervall) {
    if (drawingData == null || drawingData == null)
      return;

    int anzBdata = dataSizes[1];
    int intervall = globalIntervall;
    ArrayList<String> xVals = new ArrayList<String>();


//  Strings über die Blöcke schreiben   ###########################################
    {
      long zeit = 0;
      String[] months = new String[12];
      String[] days = new String[7];
      boolean einmal = true;

      for (int i = 0; i < drawingIntervall.size(); i++)
        zeit += ((Long) drawingIntervall.get(i)).longValue();

      if (bigData) //  > 2 Jahre
        months = null;
      else if (zeit > 31623000) //  > 1 Jahre
        months = dfs.getShortMonths();
      else
        months = dfs.getMonths();
      days = dfs.getWeekdays();


      for (int i = 0; i < drawingData.size(); i++) {
        long[] pack = (long[]) drawingData.get(i);
        String s = "";

        //        Sonderfall !! In Monatsansicht den Monat dazu schreiben
        if ((einmal) && (intervall == 2)) {
          if (etStart.getText().toString().trim().startsWith("01.")) {
            Calendar calE = convStringToDate(etEnd.getText().toString().trim(), true, true);
            int jahr = calE.get(Calendar.YEAR);
            int monat = calE.get(Calendar.MONTH);

            Calendar calX = myGetInstance();
            calX.set(Calendar.YEAR, jahr);
            calX.set(Calendar.MONTH, monat);
            calX = getLastDayOfMonth(calX);

            if (calE.getTimeInMillis() == calX.getTimeInMillis()) {
              einmal = false;
              s = months[calE.get(Calendar.MONTH)];
            }
          }
        }

        switch (intervall) {
          case 0:
            s += df.format(convMilliToDate(pack[0] * 1000, false, false).getTime());
            break;

          case 1:
            s += convMilliToString(pack[0] * 1000);
            break;

          case 2:
            s += "KW " + convMilliToDate(pack[0] * 1000, false,     false).get(Calendar.WEEK_OF_YEAR);
            break;

          case 3:
            if (bigData)
              s += convMilliToDate(pack[0] * 1000, false,     false).get(Calendar.YEAR) + "";
            else
              s += months[convMilliToDate(pack[0] * 1000, false, false).get(Calendar.MONTH)];
            break;
        }

        xVals.add(s);
      }
    }


    //   nun alle Balken/Blöcke zeichnen       ##########################################
    {
//      1 Y-Wert entspricht z.B. 1 Tag, o. 1 Woche,... jeder Y-Wert hat so viele floats wie B-Daten vorhanden sind   ###########################################
      ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();

      for (int i = 0; i < drawingData.size(); i++) {
        long[] pack = (long[]) drawingData.get(i);
        long intervallSek = ((Long) drawingIntervall.get(i)).longValue()     + 1;
        long pastSek = 0;
        float[] f = new float[anzBdata + 1];
        int b = 0;

        for (int j = 0; j < pack.length; j++) {
          if ((j >= dataSizes[0]) && (j <= (anzBdata - 1 + dataSizes[0]))) {
        f[b++] = pack[j];
        pastSek += pack[j];
      }
    }
        f[b++] = intervallSek - pastSek;  //  zeichnet einen Block indem "keine Daten" aufgezeichnet wurden. (wenn Maschine ohne Strom o.ä.)
        yVals1.add(new BarEntry(f, i));
      }

//      BarDataSet set1 = new BarDataSet(yVals1, "Statistics Business Data");
      BarDataSet set1 = new BarDataSet(yVals1, "");
      set1.setColors(getColors());
      set1.setStackLabels(barChartLegend);

      ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>();
      dataSets.add(set1);

      BarData data = new BarData(xVals, dataSets);
      data.setValueFormatter(new MyValueFormatter());

      mChart.setData(data);
      mChart.invalidate();
    }
  }
private void fills stacked条形图(矢量绘图数据、矢量绘图中间值){
如果(drawingData==null | | drawingData==null)
返回;
int anzBdata=数据量[1];
int intervall=globalIntervall;
ArrayList xVals=新的ArrayList();
//布卢克·施雷本###########################################
{
long-zeit=0;
字符串[]个月=新字符串[12];
字符串[]天=新字符串[7];
布尔值einmal=true;
对于(int i=0;i2 Jahre
月份=空;
否则,如果(zeit>31623000)/>1贾赫
月份=dfs.getShortMonths();
其他的
months=dfs.getMonths();
days=dfs.getWeekdays();
对于(int i=0;i如果((j>=dataSizes[0])&&(j这个解决方案真的不太好,也许其他人会找到更好的解决方案

BarChart类从BarLineChartBase扩展而来。BarLineChartBase中有一条线,可以对其进行注释或删除,以获得所需的解决方案

mRenderer.drawValues(canvas);

这个解决方案并不漂亮,希望其他人能找到更好的解决方案

BarChart类从BarLineChartBase扩展而来。BarLineChartBase中有一条线,可以对其进行注释或删除,以获得所需的解决方案

mRenderer.drawValues(canvas);

基本上有两种方式:

  • 使用自定义格式设置值(编辑或删除)
  • 使用
    dataSet.setDrawValues(false)
    完全删除所有值

    • 基本上有两种方法:

      • 使用自定义格式设置值(编辑或删除)
      • 使用
        dataSet.setDrawValues(false)
        完全删除所有值