參考資料:
https://github.com/PhilJay/MPAndroidChart
引用庫
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
柱狀類
import android.graphics.Color;
import com.github.mikephil.charting.animation.Easing;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
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.formatter.ValueFormatter;
import java.util.ArrayList;
import java.util.List;
public class BarCharDkey {
private BarChart barChart;
private YAxis leftAxis; //左側Y軸
private YAxis rightAxis; //右側Y軸
private XAxis xAxis; //X軸
private Legend legend; //圖例
private LimitLine limitLine; //限制線
protected final String[] months = new String[] {
"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
};
public BarCharDkey(BarChart chart) {
barChart = chart;
//背景顔色
barChart.setBackgroundColor(Color.TRANSPARENT);
//不顯示圖表網格
barChart.setDrawGridBackground(false);
//設定圖表描述資訊
Description description = new Description();
description.setText("");
barChart.getDescription().setEnabled(false);
barChart.setDescription(description);
//設定 chart 邊框線的顔色。
barChart.setBorderColor(Color.TRANSPARENT);
//禁止縮放
barChart.setScaleEnabled(false);
//背景陰影
barChart.setDrawBarShadow(false);
barChart.setHighlightFullBarEnabled(false);
//顯示邊框
barChart.setDrawBorders(true);
//設定動畫效果
barChart.animateY(1000, Easing.Linear);
barChart.animateX(1000, Easing.Linear);
//X軸設定顯示位置在底部
xAxis = barChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//單個時可微調-0.5f
xAxis.setAxisMinimum(-0.5f);
xAxis.setGranularity(0f);
xAxis.setTextColor(Color.WHITE);
xAxis.setTextSize(14.0f);
//隐藏X軸豎網格線
xAxis.setDrawGridLines(false);
xAxis.setDrawAxisLine(true);
xAxis.setAxisLineColor(Color.WHITE);
xAxis.setGridColor(Color.TRANSPARENT);
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return months[(int) value % months.length];
}
});
leftAxis = barChart.getAxisLeft();
rightAxis = barChart.getAxisRight();
//保證Y軸從0開始,不然會上移一點
leftAxis.setAxisMinimum(0f);
rightAxis.setAxisMinimum(0f);
//邊線顔色
rightAxis.setAxisLineColor(Color.WHITE);
leftAxis.setAxisLineColor(Color.WHITE);
rightAxis.setTextColor(Color.WHITE);
leftAxis.setTextColor(Color.WHITE);
leftAxis.setTextSize(14.0f);
rightAxis.setTextSize(14.0f);
//隐藏左邊坐标軸橫網格線
leftAxis.setDrawGridLines(false);
//隐藏右邊坐标軸橫網格線
rightAxis.setDrawGridLines(false);
//隐藏右邊資料
rightAxis.setEnabled(false);
legend = barChart.getLegend();
legend.setForm(Legend.LegendForm.SQUARE);
legend.setFormSize(16.0f);
legend.setTextSize(16.0f);
legend.setTextColor(Color.WHITE);
//設定X軸上條目的間隔,預設為6dp
legend.setXEntrySpace(20);
//顯示位置
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
//是否繪制在圖表裡面
legend.setDrawInside(false);
}
/**
* 單個柱狀加載資料
*
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
*/
public void showBarChart(List<Float> xAxisValues, List<Float> yAxisValues, String label, int color) {
//将資料源添加到圖示
ArrayList entries = new ArrayList<>();
for (int i = 0; i < xAxisValues.size(); i++) {
entries.add(new BarEntry(xAxisValues.get(i), yAxisValues.get(i)));
}
BarDataSet barDataSet = new BarDataSet(entries, label);
//設定柱狀圖顔色
barDataSet.setColor(color);
//設定數值字型大小
barDataSet.setValueTextSize(16f);
barDataSet.setValueTextColor(Color.WHITE);
//線條寬度
barDataSet.setFormLineWidth(1f);
//圖例窗體的大小
// barDataSet.setFormSize(15.f);
ArrayList dataSets = new ArrayList<>();
dataSets.add(barDataSet);
BarData data = new BarData(dataSets);
//柱狀寬度
data.setBarWidth(0.5f);
//設定X軸的刻度數
xAxis.setLabelCount(entries.size() - 1, false);
barChart.setData(data);
}
/**
* 多個柱狀加載資料
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
* @param type 0手機;1電腦
*/
public void showBarChart(List<Float> xAxisValues, List<List<Float>> yAxisValues, List<String> label, List<Integer> color,int type) {
ArrayList dataSets = new ArrayList<>();
BarData data = new BarData();
for (int i = 0; i < yAxisValues.size(); i++) {
ArrayList entries = new ArrayList<>();
for (int j = 0; j < yAxisValues.get(i).size(); j++) {
entries.add(new BarEntry(xAxisValues.get(j), yAxisValues.get(i).get(j)));
}
BarDataSet barDataSet = new BarDataSet(entries, label.get(i));
//設定柱狀圖顔色
barDataSet.setColor(color.get(i));
//設定數值字型大小
barDataSet.setValueTextSize(18f);
barDataSet.setValueTextColor(Color.WHITE);
//線條寬度
barDataSet.setFormLineWidth(2f);
//格式化x軸标簽顯示字元
if (type == 0) {
if (i == 0) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return String.valueOf((int)value);
}
});
} else if (i == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
} else if (type == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
data.addDataSet(barDataSet);
}
int amount = yAxisValues.size();
//柱狀圖組之間的間距
float groupSpace = 0.2f;
float barSpace = 0.00f;
float barWidth = 0.4f;
//設定x軸顯示标簽數量
// (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group"
xAxis.setLabelCount(xAxisValues.size() - 1, false);
data.setBarWidth(barWidth);
data.groupBars(-0.5f, groupSpace, barSpace);
// 添加到圖表中
barChart.setData(data);
}
}
線性類
import android.graphics.Color;
import com.github.mikephil.charting.animation.Easing;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
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.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.formatter.IValueFormatter;
import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.utils.ViewPortHandler;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
public class LineChartDkey {
private LineChart mLineChart;
private YAxis leftAxis; //左側Y軸
private YAxis rightAxis; //右側Y軸
private XAxis xAxis; //X軸
private Legend legend; //圖例
private LimitLine limitLine; //限制線
public static String[] days = null;
public LineChartDkey(LineChart chart) {
mLineChart = chart;
//背景顔色
mLineChart.setBackgroundColor(Color.TRANSPARENT);
//不顯示圖表網格
mLineChart.setDrawGridBackground(false);
mLineChart.setNoDataText("");
//設定圖表描述資訊
Description description = new Description();
description.setText("");
mLineChart.getDescription().setEnabled(false);
mLineChart.setDescription(description);
//設定 chart 邊框線的顔色。
mLineChart.setBorderColor(Color.TRANSPARENT);
//禁止縮放
mLineChart.setScaleEnabled(false);
//顯示邊框
mLineChart.setDrawBorders(true);
//設定動畫效果
mLineChart.animateY(1000, Easing.Linear);
mLineChart.animateX(1000, Easing.Linear);
//X軸設定顯示位置在底部
xAxis = mLineChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//單個時可微調-0.5f
xAxis.setAxisMinimum(0f);
xAxis.setGranularity(0f);
xAxis.setTextColor(Color.WHITE);
xAxis.setTextSize(14.0f);
//隐藏X軸豎網格線
xAxis.setDrawGridLines(false);
xAxis.setDrawAxisLine(true);
xAxis.setAxisLineColor(Color.WHITE);
xAxis.setGridColor(Color.TRANSPARENT);
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return days[(int) value % days.length];
}
});
leftAxis = mLineChart.getAxisLeft();
rightAxis = mLineChart.getAxisRight();
//保證Y軸從0開始,不然會上移一點
leftAxis.setAxisMinimum(0f);
rightAxis.setAxisMinimum(0f);
//邊線顔色
rightAxis.setAxisLineColor(Color.WHITE);
leftAxis.setAxisLineColor(Color.WHITE);
rightAxis.setTextColor(Color.WHITE);
leftAxis.setTextColor(Color.WHITE);
leftAxis.setTextSize(14.0f);
rightAxis.setTextSize(14.0f);
//隐藏左邊坐标軸橫網格線
leftAxis.setDrawGridLines(false);
//隐藏右邊坐标軸橫網格線
rightAxis.setDrawGridLines(false);
//隐藏右邊資料
rightAxis.setEnabled(false);
legend = mLineChart.getLegend();
legend.setForm(Legend.LegendForm.SQUARE);
legend.setFormSize(16.0f);
legend.setTextSize(16.0f);
legend.setTextColor(Color.WHITE);
//設定X軸上條目的間隔,預設為6dp
legend.setXEntrySpace(20);
//顯示位置
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
//是否繪制在圖表裡面
legend.setDrawInside(false);
}
/**
* 單個柱狀加載資料
*
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
*/
public void showLineChart(List<Float> xAxisValues, List<Float> yAxisValues, String label, int color) {
//将資料源添加到圖示
ArrayList entries = new ArrayList<>();
for (int i = 0; i < xAxisValues.size(); i++) {
entries.add(new BarEntry(xAxisValues.get(i), yAxisValues.get(i)));
}
LineDataSet barDataSet = new LineDataSet(entries, label);
//設定柱狀圖顔色
barDataSet.setColor(color);
//設定數值字型大小
barDataSet.setValueTextSize(16f);
barDataSet.setValueTextColor(Color.RED);
//線條寬度
barDataSet.setFormLineWidth(1f);
//圖例窗體的大小
// barDataSet.setFormSize(15.f);
ArrayList dataSets = new ArrayList<>();
dataSets.add(barDataSet);
LineData data = new LineData(dataSets);
//設定X軸的刻度數
xAxis.setLabelCount(entries.size() - 1, false);
mLineChart.setData(data);
}
/**
* 多個線性加載資料
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
* @param type 0手機;1電腦
*/
public void showLineChart(List<Float> xAxisValues, List<List<Float>> yAxisValues, List<String> label, List<Integer> color,int type) {
ArrayList dataSets = new ArrayList<>();
LineData data = new LineData();
for (int i = 0; i < yAxisValues.size(); i++) {
ArrayList entries = new ArrayList<>();
for (int j = 0; j < yAxisValues.get(i).size(); j++) {
entries.add(new BarEntry(xAxisValues.get(j), yAxisValues.get(i).get(j)));
}
LineDataSet barDataSet = new LineDataSet(entries, label.get(i));
//設定柱狀圖顔色
barDataSet.setColor(color.get(i));
//設定數值字型大小
barDataSet.setValueTextSize(20f);
barDataSet.setValueTextColor(Color.WHITE);
//線條寬度
barDataSet.setFormLineWidth(2f);
//設定使用 範圍背景填充
barDataSet.setDrawFilled(true);
//設定曲線值的圓點是實心還是空心
barDataSet.setDrawCircleHole(true);
barDataSet.setCircleColor(color.get(i));
//設定焦點圓心的大小
barDataSet.setCircleRadius(4f);
格式化x軸标簽顯示字元
if (type == 0) {
if (i == 0) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return String.valueOf((int)value);
}
});
} else if (i == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
} else if (type == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
data.addDataSet(barDataSet);
}
//設定x軸顯示标簽數量
xAxis.setLabelCount(xAxisValues.size() - 1, false);
// 添加到圖表中
mLineChart.setData(data);
}
}
橫向柱狀圖
import android.graphics.Color;
import com.github.mikephil.charting.animation.Easing;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
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.formatter.ValueFormatter;
import java.util.ArrayList;
import java.util.List;
public class HbarCharDkey {
private BarChart barChart;
private YAxis leftAxis; //左側Y軸
private YAxis rightAxis; //右側Y軸
private XAxis xAxis; //X軸
private Legend legend; //圖例
private LimitLine limitLine; //限制線
public String[] months = null;
public HbarCharDkey(BarChart chart) {
barChart = chart;
//背景顔色
barChart.setBackgroundColor(Color.TRANSPARENT);
//不顯示圖表網格
barChart.setDrawGridBackground(false);
//設定圖表描述資訊
Description description = new Description();
description.setText("");
barChart.getDescription().setEnabled(false);
barChart.setDescription(description);
//設定 chart 邊框線的顔色。
barChart.setBorderColor(Color.TRANSPARENT);
//禁止縮放
barChart.setScaleEnabled(false);
//背景陰影
barChart.setDrawBarShadow(false);
barChart.setHighlightFullBarEnabled(false);
//顯示邊框
barChart.setDrawBorders(true);
//設定動畫效果
barChart.animateY(1000, Easing.Linear);
barChart.animateX(1000, Easing.Linear);
//X軸設定顯示位置在底部
xAxis = barChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//單個時可微調-0.5f
xAxis.setAxisMinimum(-0.5f);
xAxis.setGranularity(0f);
xAxis.setTextColor(Color.WHITE);
xAxis.setTextSize(14.0f);
//隐藏X軸豎網格線
xAxis.setDrawGridLines(false);
xAxis.setDrawAxisLine(true);
xAxis.setAxisLineColor(Color.WHITE);
xAxis.setGridColor(Color.TRANSPARENT);
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return months[(int) value % months.length];
}
});
leftAxis = barChart.getAxisLeft();
rightAxis = barChart.getAxisRight();
//保證Y軸從0開始,不然會上移一點
leftAxis.setAxisMinimum(0f);
rightAxis.setAxisMinimum(0f);
//邊線顔色
rightAxis.setAxisLineColor(Color.WHITE);
leftAxis.setAxisLineColor(Color.WHITE);
rightAxis.setTextColor(Color.WHITE);
leftAxis.setTextColor(Color.WHITE);
leftAxis.setTextSize(14.0f);
rightAxis.setTextSize(14.0f);
//隐藏左邊坐标軸橫網格線
leftAxis.setDrawGridLines(false);
//隐藏右邊坐标軸橫網格線
rightAxis.setDrawGridLines(false);
//隐藏右邊資料
rightAxis.setEnabled(false);
legend = barChart.getLegend();
legend.setForm(Legend.LegendForm.SQUARE);
legend.setFormSize(16.0f);
legend.setTextSize(16.0f);
legend.setTextColor(Color.WHITE);
//設定X軸上條目的間隔,預設為6dp
legend.setXEntrySpace(20);
//顯示位置
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
//是否繪制在圖表裡面
legend.setDrawInside(false);
legend.setEnabled(false);
}
/**
* 單個柱狀加載資料
*
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
*/
public void showBarChart(List<Float> xAxisValues, List<Float> yAxisValues, String label, int color) {
//将資料源添加到圖示
ArrayList entries = new ArrayList<>();
for (int i = 0; i < xAxisValues.size(); i++) {
entries.add(new BarEntry(xAxisValues.get(i), yAxisValues.get(i)));
}
BarDataSet barDataSet = new BarDataSet(entries, label);
//設定柱狀圖顔色
barDataSet.setColor(color);
//設定數值字型大小
barDataSet.setValueTextSize(16f);
barDataSet.setValueTextColor(Color.WHITE);
//線條寬度
barDataSet.setFormLineWidth(1f);
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
//圖例窗體的大小
// barDataSet.setFormSize(15.f);
ArrayList dataSets = new ArrayList<>();
dataSets.add(barDataSet);
BarData data = new BarData(dataSets);
//柱狀寬度
data.setBarWidth(0.5f);
//設定X軸的刻度數
xAxis.setLabelCount(entries.size() - 1, false);
barChart.setData(data);
}
/**
* 多個柱狀加載資料
*
* @param xAxisValues
* @param yAxisValues
* @param label
* @param color
* @param type 0手機;1電腦
*/
public void showBarChart(List<Float> xAxisValues, List<List<Float>> yAxisValues, List<String> label, List<Integer> color, int type) {
ArrayList dataSets = new ArrayList<>();
BarData data = new BarData();
for (int i = 0; i < yAxisValues.size(); i++) {
ArrayList entries = new ArrayList<>();
for (int j = 0; j < yAxisValues.get(i).size(); j++) {
entries.add(new BarEntry(xAxisValues.get(j), yAxisValues.get(i).get(j)));
}
BarDataSet barDataSet = new BarDataSet(entries, label.get(i));
//設定柱狀圖顔色
barDataSet.setColor(color.get(i));
//設定數值字型大小
barDataSet.setValueTextSize(18f);
barDataSet.setValueTextColor(Color.WHITE);
//線條寬度
barDataSet.setFormLineWidth(2f);
//格式化x軸标簽顯示字元
if (type == 0) {
if (i == 0) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
return String.valueOf((int) value);
}
});
} else if (i == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
} else if (type == 1) {
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
if (value == 0) {
return "0";
} else if ((value - (int) value) > 0) {
return value + "h";
} else {
return (int) value + "h";
}
}
});
}
data.addDataSet(barDataSet);
}
int amount = yAxisValues.size();
//柱狀圖組之間的間距
float groupSpace = 0.2f;
float barSpace = 0.00f;
float barWidth = 0.4f;
//設定x軸顯示标簽數量
// (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group"
xAxis.setLabelCount(xAxisValues.size() - 1, false);
data.setBarWidth(barWidth);
data.groupBars(-0.5f, groupSpace, barSpace);
// 添加到圖表中
barChart.setData(data);
}
}
activity_char.xml
柱狀圖和折線圖布局檔案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:gravity="center_horizontal"
android:orientation="vertical">
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/line_chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"></LinearLayout>
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/bar_chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
import android.app.Activity;
import android.os.Bundle;
import com.github.mikephil.charting.charts.BarChart;
public class ChartActivity extends Activity {
private BarCharDkey mBarCharMonth;
private LineChartDkey mLineChartDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart);
BarChart chart = (BarChart) findViewById(R.id.line_chart);
LineChart chart = (LineChart) findViewById(R.id.bar_chart);
mBarCharMonth = new BarCharDkey(chart);
ArrayList<Float> xValue = new ArrayList<>();
for(int i=0;i<12;i++){
xValue.add((float)i);
}
List<List<Float>> yValues = new ArrayList<>();
for(int i=0;i<2;i++){
List<Float> yValue = new ArrayList<>();
for(int j=0;j<12;j++){
yValue.add((float) (Math.random() * 2000));
}
yValues.add(yValue);
}
ArrayList<String> title = new ArrayList<>();
for(int i=0;i<2;i++){
title.add("title"+i);
}
ArrayList<Integer> color = new ArrayList<>();
// for(int i=0;i<2;i++){
color.add(Color.GREEN);
color.add(Color.RED);
// }
mBarCharMonth.showBarChart(xValue,yValues.get(0),"aaa", Color.GREEN);
// mBarCharMonth.showBarChart(xValue,yValues,title, color);
mLineChartDay = new LineChartDkey(chart);
ArrayList<Float> xValue = new ArrayList<>();
for(int i=0;i<31;i++){
xValue.add((float)i);
}
List<List<Float>> yValues = new ArrayList<>();
for(int i=0;i<2;i++){
List<Float> yValue = new ArrayList<>();
for(int j=0;j<31;j++){
yValue.add((float) (Math.random() * 2000));
}
yValues.add(yValue);
}
ArrayList<String> title = new ArrayList<>();
for(int i=0;i<2;i++){
title.add("title"+i);
}
ArrayList<Integer> color = new ArrayList<>();
// for(int i=0;i<2;i++){
color.add(Color.GREEN);
color.add(Color.RED);
// }
// mLineChartDay.showLineChart(xValue,yValues.get(0),"aaa", Color.GREEN);
mLineChartDay.showLineChart(xValue,yValues,title, color);
}
}
橫向柱狀圖布局檔案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.github.mikephil.charting.charts.HorizontalBarChart
android:id="@+id/hbc_chart"
android:layout_width="500dp"
android:layout_height="300dp">
</com.github.mikephil.charting.charts.HorizontalBarChart>
</LinearLayout>
用法同上。