标签:
参考:http://blog.csdn.net/shineflowers/article/details/44704723
1.在布局文件中加入组件
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/char1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:layout_weight="1.0"
/>
2.设置图表的属性
chart1 = (LineChart) findViewById(R.id.char1);
lineChart.setDrawBorders(false); //是否在折线图上添加边框
lineChart.setDescription("");// 数据描述
lineChart.setDescriptionTypeface(mTf);//字体
// 如果没有数据的时候,会显示这个,类似listview的emtpyview
// lineChart.setNoDataTextDescription("You need to provide data for the chart.");
lineChart.setDrawGridBackground(false); // 是否显示表格颜色
// lineChart.setGridBackgroundColor(Color.WHITE & 0x70FFFFFF); // 表格的的颜色,在这里是是给颜色设置一个透明度
lineChart.setTouchEnabled(true); // 设置是否可以触摸
// enable scaling and dragging
lineChart.setDragEnabled(true);// 是否可以拖拽
lineChart.setScaleEnabled(true);// 是否可以缩放
lineChart.setPinchZoom(false);
lineChart.setBackgroundColor(Color.WHITE);// 设置背景
//设置最大值和最小值的标注线
LimitLine ll1 = new LimitLine(100f, "最大值");
ll1.setLineWidth(4f);
// ll1.enableDashedLine(10f, 10f, 0f);//设置为虚线。
ll1.setLabelPosition(LimitLabelPosition.POS_LEFT);
ll1.setTextSize(10f);
LimitLine ll2 = new LimitLine(10f, "最小值");
ll2.setLineWidth(4f);
// ll2.enableDashedLine(10f, 10f, 0f);
ll2.setLabelPosition(LimitLabelPosition.POS_LEFT);
ll2.setTextSize(10f);
//X轴样式。
XAxis xAxis = lineChart.getXAxis();
xAxis.setPosition(XAxisPosition.BOTTOM);
xAxis.setTypeface(mTf);
xAxis.setDrawGridLines(false);
xAxis.setDrawAxisLine(true);
//Y轴样式。
YAxis leftAxis = lineChart.getAxisLeft();
leftAxis.setTypeface(mTf);
leftAxis.setLabelCount(10);
leftAxis.addLimitLine(ll1);
leftAxis.addLimitLine(ll2);
//设置图例样式。
Legend mLegend = lineChart.getLegend(); // 设置比例图标示,就是那个一组y的value的
mLegend.setForm(LegendForm.CIRCLE);// 样式
mLegend.setFormSize(6f);// 字体
mLegend.setTextColor(Color.BLACK);// 颜色
mLegend.setTypeface(mTf);// 字体
//图表动画。
lineChart.animateX(2000); // 立即执行的动画,x轴
lineChart.animateY(1000); // 立即执行的动画,y轴
3.生成图表的数据
// x轴显示的数据,这里默认使用数字下标显示
ArrayList<String> xValues = new ArrayList<String>();
for (int i = 0; i < count; i++) {
xValues.add("" + i);
}
// y轴的数据
ArrayList<Entry> yValues = new ArrayList<Entry>();
for (int i = 0; i < count; i++) {
float value = (float) (Math.random() * range) + 3;
yValues.add(new Entry(value, i));
}
// create a dataset and give it a type
// y轴的数据集合
LineDataSet lineDataSet = new LineDataSet(yValues, "测试折线图" /*显示在比例图上*/);
// mLineDataSet.setFillAlpha(110);
// mLineDataSet.setFillColor(Color.RED);
//用y轴的集合来设置数据线和数据点的样式
lineDataSet.setLineWidth(1.75f); // 线宽
lineDataSet.setCircleSize(4.5f);// 显示的圆形大小
lineDataSet.setColor(color);// 线的颜色
lineDataSet.setCircleColor(color);// 圆形的颜色
lineDataSet.setHighLightColor(Color.rgb(244, 117, 117)); // 高亮的线的颜色
// create a data object with the datasets
LineData lineData = new LineData(xValues, lineDataSet);//生成数据
============================================================
//将数据集合加入到ArrayList中。生成的LineData可以在一个图表上生成多条数据线。
ArrayList<LineDataSet> lineDataSets = new ArrayList<LineDataSet>();
lineDataSets.add(lineDataSet); //添加DataSet
LineData lineData = new LineData(xValues, lineDataSets); //使用ArrayList设置生成数据。
==============================================================
4.将数据绑定到图表。
lineChart.setData(lineData); // 设置数据
参考:http://blog.csdn.net/shineflowers/article/details/44704723
标签:
原文地址:http://www.cnblogs.com/blueice-007/p/4658277.html