MPAndroiddChart的使用
效果图
代码:
package com.jiahao.me; import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle; import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.components.YAxis.YAxisLabelPosition;
import com.github.mikephil.charting.data.ChartData;
import com.github.mikephil.charting.data.DataSet;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet; public class MainActivity extends Activity {
private LineChart chat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chat = (LineChart) findViewById(R.id.chat);
chat.setLogEnabled(true);
chat.setBackgroundColor(Color.WHITE);
chat.setDrawGridBackground(false);
// 设置描述
chat.setDescription("");
// 启用 拖动 平移
chat.setDragEnabled(true);
chat.setDragDecelerationEnabled(true);
chat.setDrawBorders(false);
// 启用或禁用绘制图表的边框
chat.setDrawBorders(false); // chat.setFitsSystemWindows(true);
// 设置动画
chat.animateX(3000);
// 设置滚动
chat.setScrollContainer(true); // chat.setTouchEnabled(true);
chat.setTouchEnabled(true);
// 设置这里进行缩放控制滚动
// chat.zoom(1.2f, 0f, 15f, 0f);
chat.setPinchZoom(false); // chat.setVisibleXRangeMaximum(5);
// chat.setVerticalScrollbarPosition(0); // chat.setHighlightPerDragEnabled(true); settingChat();
} private void settingChat() {
// 设置X轴
XAxis xAxis = chat.getXAxis();
// 设置X轴的位置
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
// 设置X轴启用或者禁用
xAxis.setEnabled(true);
// 上面第一行代码设置了false,所以下面第一行即使设置为true也不会绘制AxisLine
xAxis.setDrawAxisLine(false); xAxis.setDrawGridLines(false);
xAxis.setDrawLabels(true);
// 设置X轴文字的颜色
xAxis.setTextColor(Color.BLUE);
xAxis.setDrawGridLines(true); xAxis.setLabelsToSkip(0);
// xAxis.setAxisLineWidth(10f);
// xAxis.setEnabled(true);
// xAxis.setDrawGridLines(false); // 设置轴行的间距
// xAxis.setAxisLineWidth(10); // 设置右边的Y轴
YAxis yAxis = chat.getAxisRight();
// 设置右边的label不可用
yAxis.setDrawLabels(false);
// 设置右边的线不可用
yAxis.setDrawGridLines(false);
// 设置右边的线不可用
yAxis.setDrawAxisLine(false); YAxis leftAxis = chat.getAxisLeft();
leftAxis.setDrawAxisLine(false); leftAxis.setStartAtZero(false); // 这里进行设置
// xAxis.setEnabled(false);
// leftAxis.setEnabled(true);
// leftAxis.setDrawLabels(true);
// leftAxis.setDrawAxisLine(true);
xAxis.setEnabled(true);
// xAxis.setDrawAxisLine(false);
xAxis.setDrawGridLines(false);
// xAxis.setAxisLineWidth(150); // 设置数据
List<Entry> yVals = new ArrayList<Entry>();
List<String> xVals = new ArrayList<String>();
xVals.add("01-01");
yVals.add(new Entry(35.5f, 0)); xVals.add("01-02");
yVals.add(new Entry(36.0f, 1)); xVals.add("01-03");
yVals.add(new Entry(36.5f, 2)); xVals.add("01-04");
yVals.add(new Entry(37.0f, 3)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 4)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 5)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 6)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 7)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 8)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 9)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 10)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 11)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 12)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 13)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 14)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 15)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 16)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 17)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 18)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 19)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 20)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 21)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 22)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 23)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 24)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 25)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 26)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 27)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 28)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 29)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 30)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 31)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 32)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 33)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 34)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 35)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 36)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 37)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 38)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 39)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 40)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 41)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 42)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 43)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 44)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 45)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 46)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 47)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 48)); xVals.add("01-07");
yVals.add(new Entry(36.5f, 49)); xVals.add("01-07");
yVals.add(new Entry(37.5f, 50)); xVals.add("01-07");
yVals.add(new Entry(38.5f, 51)); xVals.add("01-07");
yVals.add(new Entry(35.5f, 52)); xVals.add("01-05");
yVals.add(new Entry(37.5f, 53)); xVals.add("01-06");
yVals.add(new Entry(38.0f, 54)); // 加上后可以解决 label显示一半的问题
// xVals.add(""); float scale = (float)(xVals.size() / 6.0);
chat.zoom(scale, 0, 0, 0); // 是否绘制 Legend 下面的方块
Legend legend = chat.getLegend();
legend.setEnabled(false); LineDataSet set1 = new LineDataSet(yVals, "Content"); // set1.setDrawValues(true);
// set1.setDrawFilled(true);
LineData lineData = new LineData(xVals, set1);
// lineData.setDrawValues(true);
chat.setData(lineData);
}
}
MPAndroiddChart的使用的更多相关文章
随机推荐
- POJ 3259 Wormholes 虫洞(负权最短路,负环)
题意: 给一个混合图,求判断是否有负环的存在,若有,输出YES,否则NO.有重边. 思路: 这是spfa的功能范围.一个点入队列超过n次就是有负环了.因为是混合图,所以当你跑一次spfa时发现没有负环 ...
- 【C#学习笔记】获得系统时间
using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { Conso ...
- Window 下 VFW 视频采集与显示
引言 经过几天的努力终于将VFW视频采集与显示功能完整实现了,不得不说网上对这方面完整的详细讲解文章是在太少了.所以就要本人来好好总结一下让后来者不再像我一样折腾好久.在本文中我将详细讲解VFW视频采 ...
- information_schema中的三个关于锁的表
在5.5中,information_schema 库中增加了三个关于锁的表(MEMORY引擎):innodb_trx ## 当前运行的所有事务innodb_locks ## ...
- LXD 2.0 系列(二):安装与配置
导读 简单来说,LXD是一个守护进程,为LXC容器的管理提供一组REST API.主要目标是提供一种类虚拟机的用户体验,是一种第三方的容器管理工具.下面呢,我们来介绍LXD 2.0 的安装与配置 安装 ...
- 回调函数、Java接口回调 总结
谈到回调,我们得先从回调函数说起,什么叫回调函数呢? 回调函数是什么? 百度百科的解释:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用 ...
- JDBC连接工厂类
看到有些书上数据库连接提供两个工厂类,一个连接工厂类一个关闭工厂类,并且关闭工厂类写了多种重载形式,感觉没有必要,这样写比较简洁一些. /** * 抽象出的连接工厂类,提供连接数据库和关闭连接的 ...
- ORA-15063: ASM discovered an insufficient number of disks for diskgroup "ASM,KEL"
在启动ASM的时候报错,报错如下: SQL> startup ASM instance started Total System Global Area 130023424 bytes Fixe ...
- nodejs学习笔记之mongoDB
这两天在学习nodejs,但是发现那本书nodejs入门指南上所用的好多方法都报错. 这里主要说下数据库部分 关于注册部分:书上创建数据库那里可能要小心点,用户名不存在的时候,下面调用save的对象要 ...
- [LeetCode] Single Number III ( a New Questions Added today)
Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...