在MPAndroidChart中设置XAxis的值

在MPAndroidChart中设置XAxis的值,android,mpandroidchart,Android,Mpandroidchart,我想将X轴值设置为堆叠条形图。 我一路在网上尝试,但都没有达到我的预期效果。所以我无法设置图表底部的xAXİ值。希望你能理解我的意思。提前谢谢 我的图书馆构建梯度 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'. <com.github.mikephil.charting.charts.BarChart android:id="@+id/stock_chart" android:layout_

我想将X轴值设置为堆叠条形图。 我一路在网上尝试,但都没有达到我的预期效果。所以我无法设置图表底部的xAXİ值。希望你能理解我的意思。提前谢谢

我的图书馆构建梯度

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'.
<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/stock_chart"
    android:layout_width="0dp"
    android:layout_height="301dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/toolbar" />
 int StockColors[] = new int[]{Color.parseColor("#337B76"), 
   Color.parseColor("#ADCECB")};

        ArrayList<BarEntry> entries = new ArrayList<>();
        entries.add(new BarEntry(0, new float[]{2000, 3000}));
        entries.add(new BarEntry(1, new float[]{5555, 8888}));
        entries.add(new BarEntry(2, new float[]{500, 900}));
        entries.add(new BarEntry(3, new float[]{9000, 10000}));

        BarDataSet bardataset = new BarDataSet(entries, "");
        bardataset.setColors(StockColors);

        BarData data = new BarData(bardataset);

        stockChart.setData(data);
        stockChart.setScaleEnabled(false);
        stockChart.getAxisRight().setEnabled(false);
        stockChart.getXAxis().setEnabled(false);
        stockChart.getXAxis().setDrawAxisLine(false);

        stockChart.getDescription().setEnabled(false);

        stockChart.setTouchEnabled(true);

        stockChart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainMenu.this, StocksDetail.class);
                startActivity(intent);
            }
        });

        final ArrayList<String> xAxisLabel = new ArrayList<>();
        xAxisLabel.add("Mon");
        xAxisLabel.add("Tue");
        xAxisLabel.add("Wed");
        xAxisLabel.add("Thu");
        xAxisLabel.add("Fri");
        xAxisLabel.add("Sat");
        xAxisLabel.add("Sun");

        XAxis xAxis = stockChart.getXAxis();
        xAxis.setCenterAxisLabels(true);
        xAxis.setValueFormatter(new 
   StockXAxisValueFormatter(myStockBarChartLabel));

   public static class StockXAxisValueFormatter implements IAxisValueFormatter {

        private final String[] mValues;

        public StockXAxisValueFormatter(String[] mValues) {
            this.mValues = mValues;
        }

        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return mValues[Math.round(value)];
        }
    }
我的xml文件:

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'.
<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/stock_chart"
    android:layout_width="0dp"
    android:layout_height="301dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/toolbar" />
 int StockColors[] = new int[]{Color.parseColor("#337B76"), 
   Color.parseColor("#ADCECB")};

        ArrayList<BarEntry> entries = new ArrayList<>();
        entries.add(new BarEntry(0, new float[]{2000, 3000}));
        entries.add(new BarEntry(1, new float[]{5555, 8888}));
        entries.add(new BarEntry(2, new float[]{500, 900}));
        entries.add(new BarEntry(3, new float[]{9000, 10000}));

        BarDataSet bardataset = new BarDataSet(entries, "");
        bardataset.setColors(StockColors);

        BarData data = new BarData(bardataset);

        stockChart.setData(data);
        stockChart.setScaleEnabled(false);
        stockChart.getAxisRight().setEnabled(false);
        stockChart.getXAxis().setEnabled(false);
        stockChart.getXAxis().setDrawAxisLine(false);

        stockChart.getDescription().setEnabled(false);

        stockChart.setTouchEnabled(true);

        stockChart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainMenu.this, StocksDetail.class);
                startActivity(intent);
            }
        });

        final ArrayList<String> xAxisLabel = new ArrayList<>();
        xAxisLabel.add("Mon");
        xAxisLabel.add("Tue");
        xAxisLabel.add("Wed");
        xAxisLabel.add("Thu");
        xAxisLabel.add("Fri");
        xAxisLabel.add("Sat");
        xAxisLabel.add("Sun");

        XAxis xAxis = stockChart.getXAxis();
        xAxis.setCenterAxisLabels(true);
        xAxis.setValueFormatter(new 
   StockXAxisValueFormatter(myStockBarChartLabel));

   public static class StockXAxisValueFormatter implements IAxisValueFormatter {

        private final String[] mValues;

        public StockXAxisValueFormatter(String[] mValues) {
            this.mValues = mValues;
        }

        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return mValues[Math.round(value)];
        }
    }

我的java代码:

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'.
<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/stock_chart"
    android:layout_width="0dp"
    android:layout_height="301dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/toolbar" />
 int StockColors[] = new int[]{Color.parseColor("#337B76"), 
   Color.parseColor("#ADCECB")};

        ArrayList<BarEntry> entries = new ArrayList<>();
        entries.add(new BarEntry(0, new float[]{2000, 3000}));
        entries.add(new BarEntry(1, new float[]{5555, 8888}));
        entries.add(new BarEntry(2, new float[]{500, 900}));
        entries.add(new BarEntry(3, new float[]{9000, 10000}));

        BarDataSet bardataset = new BarDataSet(entries, "");
        bardataset.setColors(StockColors);

        BarData data = new BarData(bardataset);

        stockChart.setData(data);
        stockChart.setScaleEnabled(false);
        stockChart.getAxisRight().setEnabled(false);
        stockChart.getXAxis().setEnabled(false);
        stockChart.getXAxis().setDrawAxisLine(false);

        stockChart.getDescription().setEnabled(false);

        stockChart.setTouchEnabled(true);

        stockChart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainMenu.this, StocksDetail.class);
                startActivity(intent);
            }
        });

        final ArrayList<String> xAxisLabel = new ArrayList<>();
        xAxisLabel.add("Mon");
        xAxisLabel.add("Tue");
        xAxisLabel.add("Wed");
        xAxisLabel.add("Thu");
        xAxisLabel.add("Fri");
        xAxisLabel.add("Sat");
        xAxisLabel.add("Sun");

        XAxis xAxis = stockChart.getXAxis();
        xAxis.setCenterAxisLabels(true);
        xAxis.setValueFormatter(new 
   StockXAxisValueFormatter(myStockBarChartLabel));

   public static class StockXAxisValueFormatter implements IAxisValueFormatter {

        private final String[] mValues;

        public StockXAxisValueFormatter(String[] mValues) {
            this.mValues = mValues;
        }

        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return mValues[Math.round(value)];
        }
    }
intstockcolors[]=newint[]{Color.parseColor(#337B76”),
parseColor(“#ADCECB”)};
ArrayList条目=新的ArrayList();
添加(新的BarEntry(0,新的float[]{2000,3000}));
添加(新的BarEntry(1,新的浮动[]{55558888}));
添加(新的BarEntry(2,新的float[]{500900}));
添加(新的BarEntry(3,新的浮动[]{9000,10000]);
BarDataSet BarDataSet=新的BarDataSet(条目“”);
设置颜色(StockColor);
BarData数据=新的BarData(bardataset);
stockChart.setData(数据);
stockChart.setScaleEnabled(假);
stockChart.getAxisRight().setEnabled(false);
stockChart.getXAxis().setEnabled(false);
stockChart.getXAxis().setDrawAxisLine(false);
stockChart.getDescription().setEnabled(false);
stockChart.setTouchEnabled(真);
stockChart.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(main menu.this、stocksdeail.class);
星触觉(意向);
}
});
最终ArrayList xAxisLabel=新ArrayList();
xAxisLabel.添加(“Mon”);
xAxisLabel.添加(“周二”);
xAxisLabel.添加(“Wed”);
xAxisLabel.添加(“Thu”);
xAxisLabel.添加(“Fri”);
xAxisLabel.添加(“Sat”);
xAxisLabel.添加(“Sun”);
XAxis XAxis=stockChart.getXAxis();
xAxis.setCenterAxisLabels(true);
xAxis.setValueFormatter(新的
StockXaxiValueFormatter(myStockBarChartLabel));
公共静态类StockXaxiValueFormatter实现IaxiValueFormatter{
私有最终字符串[]mValues;
public StockXaxiValueFormatter(字符串[]mValues){
this.mValues=mValues;
}
@凌驾
公共字符串getFormattedValue(浮点值,AxisBase轴){
返回mValues[Math.round(value)];
}
}
我可以使用已弃用的库执行此操作,但我想使用最新的库。

添加以下行:

stockChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(xAxisLabel));
stockChart.getXAxis().setEnabled(false);
同时删除以下行:

stockChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(xAxisLabel));
stockChart.getXAxis().setEnabled(false);
在末尾添加两行:

barChart.notifyDataSetChanged();
barChart.invalidate();
XAxis-XAxis=mChart.getXAxis();
设置位置(xAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
setValueFormatter(新的IndexAxisValueFormatter(getAreaCount));
公共阵列列表getAreaCount(){
最终ArrayList xAxisLabel=新ArrayList();
xAxisLabel.添加(“Mon”);
xAxisLabel.添加(“周二”);
xAxisLabel.添加(“Wed”);
xAxisLabel.添加(“Thu”);
xAxisLabel.添加(“Fri”);
xAxisLabel.添加(“Sat”);
xAxisLabel.添加(“Sun”);
返回标签;
}