我试图使用MPAndroidChart在android中绘制一个水平条形图.请检查以下代码.
activity_mail.xml
MainActivity.java
import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.github.mikephil.charting.charts.HorizontalBarChart; import com.github.mikephil.charting.data.BarData; import com.github.mikephil.charting.data.BarDataSet; import com.github.mikephil.charting.data.BarEntry; import com.github.mikephil.charting.utils.ColorTemplate; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HorizontalBarChart chart = (HorizontalBarChart) findViewById(R.id.chart); BarData data = new BarData(getDataSet()); chart.setData(data); chart.animateXY(2000, 2000); chart.invalidate(); } private BarDataSet getDataSet() { ArrayListentries = new ArrayList(); entries.add(new BarEntry(4f, 0)); entries.add(new BarEntry(8f, 1)); entries.add(new BarEntry(6f, 2)); entries.add(new BarEntry(12f, 3)); entries.add(new BarEntry(18f, 4)); entries.add(new BarEntry(9f, 5)); BarDataSet dataset = new BarDataSet(entries,"hi"); return dataset; } private ArrayList getXAxisValues() { ArrayList labels = new ArrayList(); labels.add("January"); labels.add("February"); labels.add("March"); labels.add("April"); labels.add("May"); labels.add("June"); return labels; } }
这给了我以下图表.
但是,我想要的条形图如下...
所以我需要做几件事......
给酒吧上色
删除引导线
显示左侧每个条形的描述
在条形的末尾用数字显示"%"标记(例如:对于第一个条形,显示4%
而不是4
)
我也访问了这篇文章,图书馆的编辑似乎已经完成了我要求的一些内容,所以可能使用这个库.我该怎么办?
着色酒吧:
BarDataSet#setColor(List
删除网格线:
chart.getXAxis().setDrawGridLines(false); chart.getLeftAxis().setDrawGridLines(false);
显示描述:
单独添加文本视图到图表
将%添加到值:
xAxis.setValueFormatter(new IAxisValueFormatter() { @Override public String getFormattedValue(float value, AxisBase axis) { return (int) Math.floor(value) + "%"; } });