android开发MPAndroidChart 水平柱状图问题!

qq_37747807 2017-07-19 12:36:45
MPAndroidChart 的水平柱状图HorizontalBarChart 不知道怎样更改X轴的刻度,想让X轴变成字符串
下面这张图 X轴上写字符 而不是数字


代码如下 请大牛帮我补补我是在不知道怎样改
private void initMPAndroidChart() {
mHorizontalBarChart = (HorizontalBarChart)findViewById(R.id.mHorizontalBarChart);
// mHorizontalBarChart.setOnChartValueSelectedListener(this);
mHorizontalBarChart.setDrawBarShadow(false);
mHorizontalBarChart.setDrawValueAboveBar(true);
mHorizontalBarChart.setMaxVisibleValueCount(120);
mHorizontalBarChart.setPinchZoom(false);
mHorizontalBarChart.setDrawGridBackground(false);
//x轴
x1 = mHorizontalBarChart.getXAxis();
x1.setEnabled(false); //是否显示x轴刻度与x轴这条线
x1.setPosition(XAxis.XAxisPosition.BOTTOM);
x1.setDrawAxisLine(true);
x1.setDrawGridLines(false);
x1.setGranularity(10f);
//x轴数值
x1.setDrawLabels(true);
x1.setLabelCount(size);

//y轴
y1 = mHorizontalBarChart.getAxisLeft();
y1.setDrawAxisLine(true);
y1.setDrawGridLines(true);
y1.setAxisMinimum(0f);
yr = mHorizontalBarChart.getAxisRight();
yr.setDrawAxisLine(true);
yr.setDrawGridLines(false);
yr.setAxisMinimum(0f);
//设置数据
setData(size,100);
mHorizontalBarChart.setFitBars(true);
mHorizontalBarChart.animateY(2500);

Legend l = mHorizontalBarChart.getLegend();
l.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
l.setDrawInside(false);
l.setFormSize(8f);
l.setXEntrySpace(4f);
}
private void setData(int count,float range){
float barWidth = 9f;
float spaceForBar = 10f;
ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
for(int i=0;i<count;i++){
yVals1.add(new BarEntry(i*spaceForBar,My_Course_Score[i]));

}
BarDataSet set1;
if(mHorizontalBarChart.getData()!=null&&mHorizontalBarChart.getData().getDataSetCount()>0){
set1 = (BarDataSet) mHorizontalBarChart.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
mHorizontalBarChart.getData().notifyDataChanged();
mHorizontalBarChart.notifyDataSetChanged();
}else{
set1 = new BarDataSet(yVals1,"线上成绩");
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
BarData data = new BarData(dataSets);
data.setValueTextSize(15f); //数据大小
data.setBarWidth(barWidth);
mHorizontalBarChart.setData(data);

}
}
ps:我不想要数字刻度 里面有个名为My_Course的数组就是我要放上去的字符串刻度
...全文
341 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧