发现最新的MPAndroidChart和以前版本的使用有一些差距,就写下了现在新版的使用方法
Android图表控件MPAndroidChart的简单介绍(MPAndroidChart3.0)
Android图表控件MPAndroidChart——曲线图LineChart的使用(多条曲线)
Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态添加数据
Android图表控件MPAndroidChart——柱状图BarChart的使用(多条柱状图)
Android图表控件MPAndroidChart——曲线图+柱状图 CombinedChart的使用
Android图表控件MPAndroidChart——源码修改实现曲线图X轴直尺刻度样式
MPAndroidChart在github上的地址:GitHub - PhilJay/MPAndroidChart: A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.
组合图CombinedChart可以将MPAndroidChart支持的所有类别的图表组合在一起,在此只是展示曲线图+柱状图
一.效果图
1.一条柱状图加一条线性图
2.多条柱状图加多条线性图
因为柱状图宽度太小,柱状图值的无法显示,放大即会显示柱状图值
二.实现效果图
主要代码如下
public class CombinedChartManager { private CombinedChart mCombinedChart; private YAxis leftAxis; private YAxis rightAxis; private XAxis xAxis; public CombinedChartManager(CombinedChart combinedChart) { this.mCombinedChart = combinedChart; leftAxis = mCombinedChart.getAxisLeft(); rightAxis = mCombinedChart.getAxisRight(); xAxis = mCombinedChart.getXAxis(); } /** * 初始化Chart */ private void initChart() { //不显示描述内容 mCombinedChart.getDescription().setEnabled(false); mCombinedChart.setDrawOrder(new CombinedChart.DrawOrder[]{ CombinedChart.DrawOrder.BAR, CombinedChart.DrawOrder.LINE }); mCombinedChart.setBackgroundColor(Color.WHITE); mCombinedChart.setDrawGridBackground(false); mCombinedChart.setDrawBarShadow(false); mCombinedChart.setHighlightFullBarEnabled(false); //显示边界 mCombinedChart.setDrawBorders(true); //图例说明 Legend legend = mCombinedChart.getLegend(); legend.setWordWrapEnabled(true); legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM); legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER); legend.setOrientation(Legend.LegendOrientation.HORIZONTAL); legend.setDrawInside(false); //Y轴设置 rightAxis.setDrawGridLines(false); rightAxis.setAxisMinimum(0f); leftAxis.setDrawGridLines(false); leftAxis.setAxisMinimum(0f); mCombinedChart.animateX(2000); // 立即执行的动画,x轴 } /** * 设置X轴坐标值 * * @param xAxisValues x轴坐标集合 */ public void setXAxis(final List<String> xAxisValues) { //设置X轴在底部 XAxis xAxis = mCombinedChart.getXAxis(); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setGranularity(1f); xAxis.setLabelCount(xAxisValues.size() - 1,false); xAxis.setValueFormatter(new IAxisValueFormatter() { @Override public String getFormattedValue(float value, AxisBase axis) { return xAxis