今天来记录一下BarChart(条形图)的详细使用(美化)!

注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!)
MPAndroidChart的详细使用——LineChart折线图(一)(简单使用)
MPAndroidChart的详细使用——LineChart折线图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图(一)(简单使用)
MPAndroidChart的详细使用——BarChart条形图组(三)(条形图组)
MPAndroidChart的详细使用——BarChart叠状条形图(四)(堆叠柱状图)
MPAndroidChart的详细使用——HorizontalBarChart横向条形图(五)(横向条形图)

上一篇文章讲了条形图的简单使用,这篇文章就来讲进阶使用(美化)

老规矩,先上效果图(不好看但是所用的美化比较全)

XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"tools:context=".Bar.BarChartMaxActivity"><com.github.mikephil.charting.charts.BarChartandroid:id="@+id/bar"android:layout_width="match_parent"android:layout_height="300dp"></com.github.mikephil.charting.charts.BarChart></LinearLayout>
Java
public class BarChartMaxActivity extends AppCompatActivity {private BarChart bar;List<BarEntry>list=new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_bar_chart_max);bar = (BarChart) findViewById(R.id.bar);//添加数据list.add(new BarEntry(1,7));     //其中两个数字对应的分别是   X轴   Y轴list.add(new BarEntry(2,10));list.add(new BarEntry(3,12));list.add(new BarEntry(4,6));list.add(new BarEntry(5,3));BarDataSet barDataSet=new BarDataSet(list,"语文");   //list是你这条线的数据  "语文" 是你对这条线的描述BarData barData=new BarData(barDataSet);bar.setData(barData);//折线图背景bar.setBackgroundColor(0x30000000);   //背景颜色bar.getXAxis().setDrawGridLines(false);  //是否绘制X轴上的网格线(背景里面的竖线)bar.getAxisLeft().setDrawGridLines(false);  //是否绘制Y轴上的网格线(背景里面的横线)//对于右下角一串字母的操作bar.getDescription().setEnabled(false);                  //是否显示右下角描述bar.getDescription().setText("这是修改那串英文的方法");    //修改右下角字母的显示bar.getDescription().setTextSize(20);                    //字体大小bar.getDescription().setTextColor(Color.RED);             //字体颜色//图例Legend legend=bar.getLegend();legend.setEnabled(true);    //是否显示图例legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);    //图例的位置//X轴XAxis xAxis=bar.getXAxis();xAxis.setDrawGridLines(false);  //是否绘制X轴上的网格线(背景里面的竖线)xAxis.setAxisLineColor(Color.RED);   //X轴颜色xAxis.setAxisLineWidth(2);           //X轴粗细xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);        //X轴所在位置   默认为上面xAxis.setValueFormatter(new IAxisValueFormatter() {   //X轴自定义坐标@Overridepublic String getFormattedValue(float v, AxisBase axisBase) {if (v==1){return "第一个";}if (v==2){return "第二个";}if (v==3){return "第三个";}if (v==4){return "第四个";}if (v==5){return "第五个";}return "";//注意这里需要改成 ""}});xAxis.setAxisMaximum(6);   //X轴最大数值xAxis.setAxisMinimum(0);   //X轴最小数值//X轴坐标的个数    第二个参数一般填false     true表示强制设置标签数 可能会导致X轴坐标显示不全等问题xAxis.setLabelCount(6,false);//Y轴YAxis AxisLeft=bar.getAxisLeft();AxisLeft.setDrawGridLines(false);  //是否绘制Y轴上的网格线(背景里面的横线)AxisLeft.setAxisLineColor(Color.BLUE);  //Y轴颜色AxisLeft.setAxisLineWidth(2);           //Y轴粗细AxisLeft.setValueFormatter(new IAxisValueFormatter() {  //Y轴自定义坐标@Overridepublic String getFormattedValue(float v, AxisBase axisBase) {for (int a=0;a<16;a++){     //用个for循环方便if (a==v){return "第"+a+"个";}}return "";}});AxisLeft.setAxisMaximum(15);   //Y轴最大数值AxisLeft.setAxisMinimum(0);   //Y轴最小数值//Y轴坐标的个数    第二个参数一般填false     true表示强制设置标签数 可能会导致X轴坐标显示不全等问题AxisLeft.setLabelCount(15,false);//是否隐藏右边的Y轴(不设置的话有两条Y轴 同理可以隐藏左边的Y轴)bar.getAxisRight().setEnabled(false);//柱子
//        barDataSet.setColor(Color.BLACK);  //柱子的颜色barDataSet.setColors(Color.BLACK,Color.BLUE);//设置柱子多种颜色  循环使用barDataSet.setBarBorderColor(Color.CYAN);//柱子边框颜色barDataSet.setBarBorderWidth(2);       //柱子边框厚度barDataSet.setBarShadowColor(Color.RED);barDataSet.setHighlightEnabled(false);//选中柱子是否高亮显示  默认为truebarDataSet.setStackLabels(new String[]{"aaa","bbb","ccc"});//定义柱子上的数据显示    可以实现加单位    以及显示整数(默认是显示小数)barDataSet.setValueFormatter(new IValueFormatter() {@Overridepublic String getFormattedValue(float v, Entry entry, int i, ViewPortHandler viewPortHandler) {if (entry.getY()==v){return v+"℃";}return "";}});//数据更新bar.notifyDataSetChanged();bar.invalidate();//动画(如果使用了动画可以则省去更新数据的那一步)bar.animateY(3000); //在Y轴的动画  参数是动画执行时间 毫秒为单位
//        line.animateX(2000); //X轴动画
//        line.animateXY(2000,2000);//XY两轴混合动画}
}

MPAndroidChart的详细使用——BarChart条形图(二)相关推荐

  1. MPAndroidChart的详细使用——BarChart条形图组(三)

    记录一下BarChart(条形图)的图组(多条数据)使用! 注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!) MPAnd ...

  2. MPAndroidChart的详细使用——BarChart条形图(一)

    今天来记录一下BarChart(条形图)的简单使用! 注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!) MPAndroi ...

  3. MPAndroidChart的详细使用——BarChart叠状条形图(四)

    记录一下BarChart(条形图)的叠状图的使用! 注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!) MPAndroid ...

  4. VTK:绘制BarChart条形图用法实战

    VTK:绘制BarChart条形图用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkAxis.h> #include <vtkChartXY.h ...

  5. 微服务Springcloud超详细教程+实战(二)

    微服务Springcloud超详细教程+实战(二) -------------------------------------- 远程调用方式 无论是微服务还是分布式服务(都是SOA,都是面向服务编程 ...

  6. 陈宝林《最优化理论与算法》超详细学习笔记 (二)————补充知识(凸集) 第二章 线性规划的基本性质

    陈宝林<最优化理论与算法>超详细学习笔记 (二)----补充知识 凸集 & 第二章 线性规划的基本性质 补充知识 凸集 方向与极方向 表示定理 择一定理 第一章 线性规划的基本性质 ...

  7. 详细解读Volley(二)—— ImageRequest Request简介

    上篇文章我们讲到了如何用volley进行简单的网络请求,我们可以很容易的接受到string.JsonObjec类型的返回结果,之前的例子仅仅是一次请求,这里需要说明volley本身就是适合高并发的,所 ...

  8. Flink学习笔记【巨详细!】(二)

    第 3 章 3.1.1 环境配置 Flink 是一个分布式的流处理框架,所以实际应用一般都需要搭建集群环境.我们在进行Flink 安装部署的学习时,需要准备 3 台 Linux 机器.具体要求如下: ...

  9. Matlab绘图-详细,全面(二维三维等)

    原文 Matlab绘图(图像为本人所绘) 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称 ...

最新文章

  1. 张高兴的 UWP 开发笔记:横向 ListView
  2. 如何玩转PDF?5款简单好用的PDF工具推荐
  3. 有关使用junit依赖出现@Before或者@Before注解不生效
  4. 文件流、目录流、文件描述符总结
  5. 【Docker】Mac下Docker启动Kubernetes
  6. CSS--CSS清除浮动的4种方式
  7. Container 系列 - NAS - Introduction
  8. csharp为何不流行_“我太南了”这些年度流行语到底是怎么选的?
  9. java dao接口_java web项目中dao和service前面为什么要有接口呢??
  10. 阿里矢量图标库 - Unicode 方式使用说明(两种用法)
  11. 构建嵌入式系统软件开发环境-为开发板安装linux系统
  12. 专利检索常用的网站有哪些?
  13. 红外接收C语言实现 NEC 定时器
  14. 修复计算机命令行,如何用命令提示符修复系统还原_用cmd命令提示符恢复系统的方法...
  15. There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org‘,port=443)
  16. 阿里云盘进场,安全星球凭什么成为云盘界的一股清流
  17. border渐变 ios_iOS给视图添加渐变色
  18. Linux硬盘分区相关命令
  19. 羽毛球单打比赛中谁先发球以及在哪个区域发球?
  20. 嵌入式C语言编码规范参考

热门文章

  1. 维吉尼亚密码破解(Python完整详细源码)
  2. EIGRP原理及配置
  3. [内网渗透]—权限维持
  4. 【时间函数】gettimeofday
  5. Verilog的基础知识
  6. vue vuex watch改变scrollTop
  7. java 微信公众号之授权登录
  8. 基于PHP+MySQL的企业员工培训管理系统
  9. C++ accumulate()的使用
  10. Python的爬虫程序