标签: mpandroidchart

MPAndroidChart:LineChart 填充不会在 XAxis 处停止

我正在使用MPAndroidChart。当我使用 LineChart setDrawFilled() 方法填充线条和 x 轴之间的空间,并手动将范围调整为大于默认值时,填充的部分将超出 x 轴,如下所示截屏:在此处输入图片说明

蓝色填充应在绿色虚线处停止,该线位于 x 轴上方,但它会延伸至正 y 值。

*经过进一步调查,我发现似乎只有在绿线设置为 0 时才会发生。

android linechart mpandroidchart

5
推荐指数
1
解决办法
3140
查看次数

如何设置图例标签 MPChart

我正在尝试自定义图例,但无法这样做。我的目的是提供不同的图例标签。我使用 MPChart 库来做到这一点。

  ArrayList<BarEntry> entries = new ArrayList<>();
    entries.add(new BarEntry(4f, 0));
    entries.add(new BarEntry(8f, 1));
    entries.add(new BarEntry(6f, 2));
    entries.add(new BarEntry(12f, 3));
    entries.add(new BarEntry(18f, 4));
    mColors.add(R.color.red);
    mColors.add(R.color.text_color_gray);
    mColors.add(R.color.text_color_blue);
    mColors.add(R.color.green);
    mColors.add(R.color.black);
   BarDataSet dataset = new BarDataSet(entries, null);
    ArrayList<String> labels = new ArrayList<String>();
    labels.add("05");
    labels.add("06");
    labels.add("07");
    labels.add("08");
    labels.add("09");
    BarData data = new BarData(labels, dataset);
    Legend legend = mChart.getLegend();
  legend.setEnabled(true);
    legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
    legend.setForm(Legend.LegendForm.SQUARE);
    legend.setColors(mColors);
    legend.setLabels(mLabels);
    mChart.setData(data);
    mChart.animateY(2000);

    LimitLine line = new LimitLine(10f);
    YAxis yAxis = mChart.getAxisLeft();
    yAxis.addLimitLine(line);
    yAxis.setDrawAxisLine(true);
    mChart.setDrawValueAboveBar(true);
    mChart.setDrawBarShadow(false);
    mChart.setVisibleXRange(4);
    mChart.moveViewToX(2);
    mChart.setDrawValueAboveBar(false);
    mChart.invalidate();
Run Code Online (Sandbox Code Playgroud)

请让我知道任何解决方案。

android mpandroidchart

5
推荐指数
2
解决办法
8410
查看次数

MPandroidChart - 放大和缩小以仅适合 Y 轴上的值

我正在使用 awsome MPandroidChart 开源库,我正在根据我在线接收的数据实时填充图表,当使用新值填充图表时,我只允许特定数量的 x 索引可见,使用“setVisibleXRange( )”和“moveViewToX()”将图表滑动到屏幕左侧,一次只显示最后一个条目。

这一切都很好,但我想实现一种情况,即修改视口以完全适合最高和最低可见值,与“fitScreen()”相同,但仅修改 Y 轴。“zoomOut()”和“zoomIn()”使用相对输入,与“zoom()”相同,所以我不能根据我的数据使用它们。我需要的是一种将视图定位在 Y 轴上的方法,以便它在每个周期适合不同的范围,例如:2 到 15 或 -98 到 34 等等。

有没有人对如何做到这一点有任何想法?感谢所有的答案。@菲尔杰

android view mpandroidchart

5
推荐指数
1
解决办法
4533
查看次数

MPAndroidChart - 网格线和限制线在后台不断闪烁

我正在尝试使用 MPAndroidChart 库绘制实时图表。虽然我成功地绘制了图形,但在绘制图形时网格线和限制线不断闪烁。

LineData data = myGraph.getData();

if (data != null) {
    LineDataSet set = data.getDataSetByIndex(0);

    if (set == null) {
        set = createSet();
        data.addDataSet(set);
    }
    // add a new x-value first
    DecimalFormat df = new DecimalFormat("#.0");
    String xVal = df.format(theRunningTime);
    data.addXValue(xVal+"s");
    data.addEntry(new Entry( yValue, set.getEntryCount()), 0);

    // let the chart know it's data has changed
    audioGraph.notifyDataSetChanged();
    audioGraph.invalidate();
}
Run Code Online (Sandbox Code Playgroud)

下面的代码介绍了图中的限制线

YAxis yl = myGraph.getAxisLeft();
yl.setTextColor(Color.WHITE);
yl.setTextSize(8f);
yl.setAxisMinValue(0);
yl.setDrawGridLines(false);
yl.setDrawAxisLine(true);
yl.setValueFormatter(new MyValueFormatter());     
yl.setStartAtZero(true);
//Remove any previous limit lines
yl.removeAllLimitLines();

LimitLine ll …
Run Code Online (Sandbox Code Playgroud)

android mpandroidchart

5
推荐指数
0
解决办法
1941
查看次数

MPandroidChart 布局高度

我正在使用 MPAndroidChart 在片段内创建条形图,但图表高度仅占整个屏幕的一小部分。另外,当高度设置为数字时,它可以正常工作,但这不是我想要的解决方案。问题是什么?下面是片段布局代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context=".MainActivity$PlaceholderFragment">

        <com.github.mikephil.charting.charts.BarChart
            android:id="@+id/barchart"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

编辑:抱歉缺乏详细信息,我在我的项目中使用了带有操作栏微调器模板的选项卡式活动。

    <android.support.design.widget.AppBarLayout android:id="@+id/appbar"
    android:layout_width="match_parent" android:layout_height="wrap_content"
    android:paddingTop="@dimen/appbar_padding_top"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
        android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"
        app:layout_scrollFlags="scroll|enterAlways">

        <Spinner android:id="@+id/spinner" app:popupTheme="@style/AppTheme.PopupOverlay"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView android:id="@+id/container"
    android:layout_width="match_parent" android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Run Code Online (Sandbox Code Playgroud)

我还有正在运行的应用程序的图像

点击查看图片

android mpandroidchart

5
推荐指数
1
解决办法
4837
查看次数

MP Android Chart - 如何设置条形图视图中显示的默认条数?

我是 Android 开发新手,目前正在学习如何构建图表,希望最终连接到数据库并创建动态图表。我使用了 MPAndroid 图表 GitHub 页面 ( https://github.com/PhilJay/MPAndroidChart/ )中的示例,并尝试对其进行操作以满足我的要求。

现在我的图表有一个 x 轴(天)和一个 y 轴(加仑)。

为简单起见,我创建了一个字符串数组“Day1”到“Day30”,用作 X 值。Y 值是一个随机数(只是为了查看不同的条形大小)。

目前:我的图表显示了所有 30 天的随机 Y 值,我可以放大和缩小,以及在放大时向左或向右滚动。

我想要什么:构建图表后,我希望图表的默认视图仅显示 7 天(例如“Day5”到“Day11”),但仍然能够在图表上向左或向右滚动到查看其他1-30天。另外,我希望能够从 7 天缩小到最多 30 天,或者放大以查看至少 3 天。

这是我目前的java文件。我知道现在很草率,我正在学习

public class ConsumptionActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, OnChartValueSelectedListener, OnSeekBarChangeListener {


    protected BarChart mChart;
    private SeekBar mSeekBarX, mSeekBarY;
    private TextView tvX, tvY;

    private Typeface mTf;
    protected String[] mDays = new String[] {
            "Day 1","Day 2","Day 3","Day 4","Day 5","Day 6","Day 7","Day 8","Day 9","Day 10","Day 11","Day 12","Day …
Run Code Online (Sandbox Code Playgroud)

java charts android bar-chart mpandroidchart

5
推荐指数
1
解决办法
8484
查看次数

每个数据线组有不同的渐变和颜色

我正在使用 MPAndroidChart 在我的 Android 应用程序中创建图表。我想知道是否可以使用 MPChart 创建这样的图表。

在此输入图像描述

我使用了LineChart并在LineSet的setFillDrawable中添加了GradientDrawable

int[] colors = {Color.parseColor("#00ff0000"), Color.parseColor("#FFB3F9E3")};
            GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TR_BL, colors);
            lineSet.setFillDrawable(gd);
Run Code Online (Sandbox Code Playgroud)

但它并没有像预期的那样出现。或者建议我最适合我的目的的图形库。

我还有几个疑问

  • 数据集名称如何与 line 一起显示?

  • 如果绘制了多条线集,如何仅显示一条线的标记视图

android mpandroidchart

5
推荐指数
0
解决办法
439
查看次数

如何突出显示mpandroid饼图的特定切片而不触摸它?

我已经在我的 android 应用程序中实现了 Mpandroid 饼图,我做了一个 BMI 计算器,我想根据我得到的 BMI 结果突出显示饼图的特定切片。有没有关于如何突出显示特定切片的解决方案不碰它。例如。如果 BMI 介于 10-20 之间,则应突出显示范围为 10-20 的特定切片。 我不希望我的触摸突出显示切片,我希望它根据我获得的 BMI 结果自动发生。

这是我的代码-->

Activity_main.java

    public class MainActivity extends AppCompatActivity
      {

    private RadioGroup radioSexGroup;
    private RadioButton radioSexButton;
    private int selectedId;
    private EditText age;
    private EditText height;
    private EditText weight;
//    private TextView result;
    private TextView t1;
    private Spinner height_spinner;
    private Spinner weight_spinner;
    private Button calculate;
    private PieChart mChart;

    String spinner_height; //Height Spinner
    String spinner_weight; //Weight Spinner
    String selected_item1;
    String selected_item2;

    float bmi=0f;

    protected String[] BMIcategory …
Run Code Online (Sandbox Code Playgroud)

java android mpandroidchart

5
推荐指数
1
解决办法
2719
查看次数

MPAndroidChart:带有三次贝塞尔曲线的 LineChart 显示错误(尖峰和循环)

我正在尝试使用立方图制作 LineChart。结果如下面的截图所示:三次贝塞尔曲线显示错误并有“尖峰”。有人可以帮我让它正确显示吗?

这是我的配置:

        LineDataSet lineDataSet = new LineDataSet(entries,nameLabel);
        lineDataSet.setColor(Constants.colors.get(i));
        lineDataSet.setDrawValues(false);
        lineDataSet.setDrawCircles(false);
        lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);
Run Code Online (Sandbox Code Playgroud)

谢谢 带尖峰的立方折线图

linechart cube mpandroidchart cubic-bezier

5
推荐指数
1
解决办法
2388
查看次数

5
推荐指数
1
解决办法
2253
查看次数