安卓折线图折线图charts



布局   <com.github.mikephil.charting.charts.LineChart
                android:id="@+id/main_linechart"
                android:layout_width="match_parent"
                android:layout_height="400dp"
                android:padding="30dp"
                android:visibility="gone"
                />


private LineChart lineChart;
protected void showFutureByLine(List<Future> futures){
lineChart = (LineChart) findViewById(R.id.main_linechart);
lineChart.setDrawBorders(false);// 不显示边框
lineChart.getAxisRight().setEnabled(false); // 隐藏右边 的坐标轴
lineChart.getAxisLeft().setEnabled(false);// 隐藏左边坐标轴
lineChart.setDrawGridBackground(false); // 是否显示表格颜色
lineChart.setDescription("");// 设置无图表描述
lineChart.fitScreen();// 设置自适应屏幕
// 设置间距
lineChart.setExtraOffsets(20, 20, 20, 20);
// X轴样式
XAxis xAxis = lineChart.getXAxis();
// 不显示表格线
xAxis.setDrawGridLines(false);
// 不显示文字
xAxis.setDrawLabels(false);
// 不显示x轴线
xAxis.setDrawAxisLine(false);

dataSet是y轴两条线的集合
List<LineDataSet> dataSets = new ArrayList<LineDataSet>();
LineDataSet highDataSet = new LineDataSet(yHighVals, "");




// 设置线条相关
highDataSet.setLineWidth(1.2f);
// 线条颜色
highDataSet.setColor(Color.parseColor("#ffffff"));
// 设置画曲线
highDataSet.setDrawCubic(true);
highDataSet.setDrawCircles(false);
// 设置画曲线的平滑度
highDataSet.setCubicIntensity(0.2f);
// 设置曲线上数据的字体颜色
highDataSet.setValueTextColor(Color.parseColor("#ffffff"));
LineDataSet lowDataSet = new LineDataSet(yLowVals, "");
// 设置线条相关
lowDataSet.setLineWidth(1.2f);
// 线条颜色
lowDataSet.setColor(Color.parseColor("#ffffff"));
// 设置画曲线
lowDataSet.setDrawCubic(true);
lowDataSet.setDrawCircles(false);
// 设置画曲线的平滑度
lowDataSet.setCubicIntensity(0.2f);
// 设置曲线上数据的字体颜色
lowDataSet.setValueTextColor(Color.parseColor("#ffffff"));
// 添加高温数据
dataSets.add(highDataSet);
// 添加低温数据
dataSets.add(lowDataSet);
//将x轴的和y轴的放到一个linedata中,在用定义的lineChart的setDaa
LineData data = new LineData(weeks, dataSets);
lineChart.setData(data);
lineChart.animateX(200);
}
//设置高温数据
private List<Entry> yHighVals;
//设置低温数据
private List<Entry> yLowVals;
//设置星期树
private List<String> weeks;








public class MainActivity extends Activity {
private LineChart  lineChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lineChart = (LineChart) findViewById(R.id.line);

lineChart.setDrawBorders(false);// 不显示边框
lineChart.getAxisRight().setEnabled(false); // 隐藏右边 的坐标轴
lineChart.getAxisLeft().setEnabled(false);// 隐藏左边坐标轴
lineChart.setDrawGridBackground(false); // 是否显示表格颜色
lineChart.setDescription("");// 设置无图表描述
lineChart.fitScreen();// 设置自适应屏幕

// X轴样式
XAxis xAxis = lineChart.getXAxis();
// 不显示表格线
xAxis.setDrawGridLines(false);
// 不显示文字
xAxis.setDrawLabels(false);
// 不显示x轴线
xAxis.setDrawAxisLine(false);


// 设置间距
lineChart.setExtraOffsets(20, 20, 20, 20);
// //x轴的显示内容
// List<String> xVals = new ArrayList<String>();
// xVals.add("1.0数据");
// xVals.add("2.0数据");
// xVals.add("3.0数据");
// xVals.add("4.0数据");
//
//
// List<Entry> yVals = new ArrayList<Entry>();
//
// Entry entry = new Entry(10.0f, 0);//entry表示的就是显示出来的一个坐标点的位置
// Entry entry1 = new Entry(3.5f, 1);//entry表示的就是显示出来的一个坐标点的位置
// Entry entry2 = new Entry(20.0f, 2);//entry表示的就是显示出来的一个坐标点的位置
// Entry entry3 = new Entry(8.5f, 3);//entry表示的就是显示出来的一个坐标点的位置
// yVals.add(entry);
// yVals.add(entry1);
// yVals.add(entry2);
// yVals.add(entry3);
// //yVals:y轴的entry对象组成的集合
// LineDataSet set = new LineDataSet(yVals, "y轴标签");
//
//
// //aValues:x轴的值组成的集合   dataSet:包含了所有显示在这条line上的点的集合对象
// //LineData:当前显示的line的x和y组成的所有显示内容的对象。
// LineData lineData = new LineData(xVals, set);
// //给线形图设置显示的数据
// lineChart.setData(lineData);


//x轴的显示内容
List<String> xVals = new ArrayList<String>();
xVals.add("1.0数据");
xVals.add("2.0数据");
xVals.add("3.0数据");
xVals.add("4.0数据");


List<Entry> yVals = new ArrayList<Entry>();

Entry entry = new Entry(10.0f, 0);//entry表示的就是显示出来的一个坐标点的位置
Entry entry1 = new Entry(3.5f, 1);//entry表示的就是显示出来的一个坐标点的位置
Entry entry2 = new Entry(20.0f, 2);//entry表示的就是显示出来的一个坐标点的位置
Entry entry3 = new Entry(8.5f, 3);//entry表示的就是显示出来的一个坐标点的位置
yVals.add(entry);
yVals.add(entry1);
yVals.add(entry2);
yVals.add(entry3);
List<Entry> yVals1 = new ArrayList<Entry>();

Entry en = new Entry(5.0f, 0);//entry表示的就是显示出来的一个坐标点的位置
Entry en1 = new Entry(7.5f, 1);//entry表示的就是显示出来的一个坐标点的位置
Entry en2 = new Entry(10.0f, 2);//entry表示的就是显示出来的一个坐标点的位置
Entry en3 = new Entry(6.5f, 3);//entry表示的就是显示出来的一个坐标点的位置
yVals1.add(en);
yVals1.add(en1);
yVals1.add(en2);
yVals1.add(en3);


//yVals:y轴的entry对象组成的集合
LineDataSet set = new LineDataSet(yVals, "y轴标签");

// 设置线条相关
set.setLineWidth(1.2f);
// 线条颜色
set.setColor(Color.parseColor("#ffffff"));
// 设置画曲线
set.setDrawCubic(true);
set.setDrawCircles(false);
// 设置画曲线的平滑度
set.setCubicIntensity(0.2f);
// 设置曲线上数据的字体颜色
set.setValueTextColor(Color.parseColor("#ffffff"));


LineDataSet set1 = new LineDataSet(yVals1, "hahah");

List<LineDataSet> setList = new ArrayList<LineDataSet>();
setList.add(set);
setList.add(set1);

//aValues:x轴的值组成的集合   dataSet:包含了所有显示在这条line上的点的集合对象
//LineData:当前显示的line的x和y组成的所有显示内容的对象。
LineData lineData = new LineData(xVals, setList);
//给线形图设置显示的数据
lineChart.setData(lineData);
}




}


我的
private void initChart(List<Every> list) {
    lineChart.setDrawBorders(false);
        lineChart.getAxisRight().setEnabled(false);
        lineChart.getAxisLeft().setEnabled(false);
        lineChart.setDrawGridBackground(false);
        lineChart.setDescription("");
        lineChart.fitScreen();




两条线的,x都一样,y不同
        List<String> xVals = new ArrayList<String>();
        List<Entry> heightyVals = new ArrayList<Entry>();//Entry是那个引用包里的,不是自已定义的
        List<Entry> lowVals = new ArrayList<Entry>();
        for(int i=0;i<list.size()-1;i++){
            xVals.add(list.get(i).getEvery_week());
            String low=list.get(i).getEvery_temperature().substring(0,2);
            Log.i("TAG","线图"+low);
            String height=list.get(i).getEvery_temperature().substring(4,6);
            Log.i("TAG","线图"+height);
            Entry lowentry = new Entry(Integer.parseInt(low),i);
            Entry heightentry = new Entry(Integer.parseInt(height),i);
            lowVals.add(lowentry);
            heightyVals.add(heightentry);
        }






        LineDataSet set = new LineDataSet(lowVals, "低温");
        LineDataSet set1 = new LineDataSet(heightyVals, "高温");
        set.setLineWidth(1.2f);
        set.setColor(Color.parseColor("#ffffff"));
        set.setDrawCubic(true);
        set.setDrawCircles(false);
        set.setCubicIntensity(0.2f);
        set.setValueTextColor(Color.parseColor("#ffffff"));
        set1.setLineWidth(1.2f);
        set1.setColor(Color.parseColor("#ffffff"));
        set1.setDrawCubic(true);
        set1.setDrawCircles(false);
        set1.setCubicIntensity(0.2f);
        set1.setValueTextColor(Color.parseColor("#ffffff"));
        List<LineDataSet> setList = new ArrayList<LineDataSet>();
        setList.add(set);
        setList.add(set1);
        LineData lineData = new LineData(xVals, setList);
        lineChart.setData(lineData);




    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值