当前位置: 首页 > 知识库问答 >
问题:

MPAndroid Linechart与单一数据输入

严亦
2023-03-14

我正在使用MPAndreidChart-v2.1.6,我面临以下问题。

我尝试了setMinimum()setMaximum()属性来处理那个特定的条件,但没有任何积极的结果发生在我身上。当我有多个条目时,它运行良好。

这是我的密码,

ArrayList<LineDataSet> lines = new ArrayList<>();
        LineDataSet linedataset1 = new LineDataSet(group1, "Text1");
        linedataset1.setDrawFilled(false);
        linedataset1.setValueFormatter(new MyDataSetFormatter());
        linedataset1.setFillAlpha(110);
        linedataset1.setLineWidth(1f);
        linedataset1.setColor(Color.rgb(67, 91, 153));
        linedataset1.setCircleColor(Color.rgb(67, 91, 153));
        LineDataSet linedataset2 = new LineDataSet(group2, "Text2");
        linedataset2.setDrawFilled(false);
        linedataset2.setValueFormatter(new MyDataSetFormatter());
        linedataset2.setFillAlpha(110);
        linedataset2.setLineWidth(1f);
        linedataset2.setColor(Color.rgb(254, 252, 59));
        linedataset2.setCircleColor(Color.rgb(254, 252, 59));
        LineDataSet linedataset3 = new LineDataSet(group3, "Text3");
        linedataset3.setDrawFilled(false);
        linedataset3.setValueFormatter(new MyDataSetFormatter());
        linedataset3.setFillAlpha(110);
        linedataset3.setLineWidth(1f);
        linedataset3.setColor(Color.rgb(68, 185, 102));
        linedataset3.setCircleColor(Color.rgb(68, 185, 102));
        LineDataSet linedataset4 = new LineDataSet(group4, "text4");
        linedataset4.setDrawFilled(false);
        linedataset4.setValueFormatter(new MyDataSetFormatter());
        linedataset4.setFillAlpha(110);
        linedataset4.setLineWidth(1f);
        linedataset4.setColor(Color.rgb(145, 92, 96));
        linedataset4.setCircleColor(Color.rgb(145, 92, 96));
        lines.add(linedataset1);
        lines.add(linedataset2);
        lines.add(linedataset3);
        lines.add(linedataset4);
        leftYAxis = lineChart.getAxisLeft();
        rightYAxis = lineChart.getAxisRight();
        rightYAxis.setDrawLabels(false);
        rightYAxis.setAxisMaxValue(105);
        leftYAxis.setAxisMaxValue(105);

        lineChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
        lineChart.getXAxis().setLabelRotationAngle(-70);

        lineChart.getXAxis().setDrawGridLines(false);
        lineChart.getAxisLeft().setDrawGridLines(false);
        lineChart.getAxisRight().setDrawGridLines(false);
        lineChart.getAxisRight().setEnabled(false);
        lineChart.setBackgroundColor(Color.WHITE);
        lineChart.setDrawGridBackground(false);

        lineChart.setData(new LineData(newLabels, lines));
        lineChart.setPinchZoom(false);
        lineChart.animateY(1000);
        lineChart.setDescription(null);

        XAxis xAxis = lineChart.getXAxis();
        xAxis.setAvoidFirstLastClipping(true);

        //lineChart.setBackgroundColor(Color.rgb(255, 255, 255));
        lineChart.setTouchEnabled(false);
        lineChart.invalidate();

提前感谢,

共有2个答案

许嘉福
2023-03-14

要将X轴限制设置为特定值,可以调用setAxismimumsetAxismimum。例如:

XAxis xAxis = lineChart.getXAxis();
xAxis.setAxisMinimum(10);
xAxis.setAxisMaximum(30);

如果要使用LineDataSet自动执行此操作,可以查询X数据的最小值和最大值

float xMin = dataSet.getXMin() - 5;
float xMax = dataSet.getXMax() + 5;
xAxis.setAxisMinimum(xMin);
xAxis.setAxisMaximum(xMax);

即使只有一个点,它也会使数据居中。

鞠晋
2023-03-14

在类之外单独声明折线图条目

  private ArrayList<Entry> dataValuesDaily(){
    ArrayList<Entry> dataVals = new ArrayList<>();
    dataVals.add(new Entry(1,10));
    dataVals.add(new Entry(11,2));
    dataVals.add(new Entry(21,16));
    dataVals.add(new Entry(30,4));
    return dataVals;
   }

然后在课堂上

 //TODO:: LINE GRAPH
    LineDataSet lineDataSet1 = new LineDataSet(dataValuesDaily(), "Data Set 1");
    lineDataSet1.setMode(LineDataSet.Mode.CUBIC_BEZIER);
    ArrayList<ILineDataSet> dataSets = new ArrayList<>();
    dataSets.add(lineDataSet1);

    //customization
    mLineGraph.setTouchEnabled(true);
    mLineGraph.setDragEnabled(true);
    mLineGraph.setScaleEnabled(false);
    mLineGraph.setPinchZoom(false);
    mLineGraph.setDrawGridBackground(false);
    mLineGraph.setExtraLeftOffset(15);
    mLineGraph.setExtraRightOffset(15);
    //to hide background lines
    mLineGraph.getXAxis().setDrawGridLines(false);
    mLineGraph.getAxisLeft().setDrawGridLines(false);
    mLineGraph.getAxisRight().setDrawGridLines(false);
    //to hide right Y and top X border
    YAxis rightYAxis = mLineGraph.getAxisRight();
    rightYAxis.setEnabled(false);
    XAxis topXAxis = mLineGraph.getXAxis();
    topXAxis.setEnabled(false);
    XAxis xAxis = mLineGraph.getXAxis();
    xAxis.setEnabled(true);
    xAxis.setDrawGridLines(false);
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

    lineDataSet1.setLineWidth(4f);
    lineDataSet1.setCircleRadius(3f);
    lineDataSet1.setDrawValues(false);
    lineDataSet1.setCircleHoleColor(getResources().getColor(R.color.pie_color_4));
    lineDataSet1.setCircleColor(getResources().getColor(R.color.pie_color_4));


    LineData data = new LineData(dataSets);
    mLineGraph.setData(data);
    mLineGraph.animateX(2000);
    mLineGraph.invalidate();
    mLineGraph.getLegend().setEnabled(false);
    mLineGraph.getDescription().setEnabled(false);
 类似资料:
  • 我有一个数据表与形式输入。 这就是我创造它的方式 我使用以下方法将数据表值传递给控制器 但是当我使用ajax函数提交数据时,我会在expdate列的输入值上得到html标记。我怎样才能得到真正的价值?解释我

  • 2.1. 表单与数据 在典型的PHP应用开发中,大多数的逻辑涉及数据处理任务,例如确认用户是否成功登录,在购物车中加入商品及处理信用卡交易。 数据可能有无数的来源,做为一个有安全意识的开发者,你需要简单可靠地区分两类数据:   l已过滤数据 l被污染数据   所有你自己设定的数据可信数据,可以认为是已过滤数据。一个你自己设定的数据是任何的硬编码数据,例如下面的email地址数据:   $email

  • 问题内容: 长话短说 PEP-557在Python标准库中引入了数据类,该类基本上可以充当和的角色。现在,我想知道如何将用例分隔,其中namedtuple仍然是更好的解决方案。 数据类优于NamedTuple 当然,如果需要,所有功劳都归功于: 可变对象 继承支持 装饰器,可管理的属性 现成的方法定义或可自定义的方法定义 在同一PEP中简要说明了数据类的优点:为什么不只使用namedtuple。

  • 我已经创建了一个简单的注册系统,它可以按预期工作,尽管我想让用户在注册时从下拉菜单中选择一个值,例如男性或女性。然后,在数据库中可以区分该用户是男性还是女性,以及他们的用户名和密码。我使用一个简单的php下拉菜单从中选择数据。 我想知道如何在我的注册系统中实现这一点,允许用户在注册时从下拉菜单中选择性别,并将其与用户名和密码一起插入数据库。谢谢 HTML- PHP-

  • 问题内容: 我需要测试一些api。例如,我在类中有多个@Test方法来测试我的功能,在初始化之前,我先连接到服务的某些URL并使用它。 如果我的服务位于多个URL(不同的服务器环境),如何为不同的服务URL测试此功能? 流: 通过url初始化连接 运行所有测试 通过另一个URL初始化连接 运行所有测试(相同) … 当只有一位主持人时,我会这样: 问题答案: 有一天我发生了,他们发现了这个很棒的主意

  • 2.6 数据的输入和输出 任何程序都需要与用户进行沟通,这就要求程序具有输入输出的功能。输入是指程序从 用户那儿获取数据,输出是指程序向用户显示或打印数据。 程序中负责与用户沟通的部分称为用户界面,它是程序设计的一个重要组成部分。设计 用户界面时要遵循的一个主要原则是所谓“用户友好性”,即要让用户在与计算机程序交互 时感到非常简单、方便和不易犯错。本章只讨论简单的数据输入输出,本书后文将专门讨论