在MPAndroidChart中设置XAxis的值
我想将X轴值设置为堆叠条形图。 我一路在网上尝试,但都没有达到我的预期效果。所以我无法设置图表底部的xAXİ值。希望你能理解我的意思。提前谢谢 我的图书馆构建梯度在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_
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”);
返回标签;
}