是否可以通过 Android 使用 MPAndroidChart 垂直绘制折线图值?

问题描述

您有什么想法为 x 轴设置背景颜色吗? 自定义 x 轴时出现问题。

我想这样做。

set background color for x-axis

有可能吗?

提前谢谢

[编辑]

  public class TargetZoneLineChart extends LineChart{

    protected Paint mYAxisSafeZonePaint;
    private List<TargetZone> mTargetZones;

    @Override
    protected void init() {
      super.init();
      mYAxisSafeZonePaint = new Paint();
      mYAxisSafeZonePaint.setStyle(Paint.Style.FILL);
      mTargetZones = new ArrayList<>();
    }

   @Override
    protected void onDraw(Canvas canvas) {
    for (TargetZone targetZone : mTargetZones) {
        // prepare coordinates
        float[] pts = new float[4];
        pts[1] = targetZone.lowerLimit;
        pts[3] = targetZone.upperLimit;
        mLeftAxisTransformer.pointValuesToPixel(pts);

        // draw
        mYAxisSafeZonePaint.setColor(targetZone.color);
        canvas.drawRect(mViewPortHandler.contentLeft(),pts[1],mViewPortHandler.contentRight(),pts[3],mYAxisSafeZonePaint);
    }
    super.onDraw(canvas);
   }

    public void addTargetZone(TargetZone targetZone){
         mTargetZones.add(targetZone);
     }

    public List<TargetZone> getTargetZones(){
         return mTargetZones;
     }    

    public static class TargetZone {
    public final int color;
    public final float lowerLimit;
    public final float upperLimit;

    public TargetZone(int color,float lowerLimit,float upperLimit) {
        this.color = color;
        this.lowerLimit = lowerLimit;
        this.upperLimit = upperLimit;
    }
}   

只有 yAxis ,如果我想成为 xAxis ,我该怎么办?

解决方法

我使用这个库来显示一周中的天数图表。您可以根据您的要求使用和定制。根据您的要求,我完成了相同类型的任务。请参阅下面的方法并使用它。希望可以帮到你。如有问题欢迎留言。

私人乐趣 setDayBarchart(){

    val yVals1 = ArrayList<BarEntry>()
    yVals1.add(BarEntry(0f,6f))
    yVals1.add(BarEntry(1f,1f))
    yVals1.add(BarEntry(2f,2f))
    yVals1.add(BarEntry(3f,3f))
    yVals1.add(BarEntry(4f,5f))
    yVals1.add(BarEntry(5f,4f))
    yVals1.add(BarEntry(6f,7f))

    val set1: BarDataSet
    set1 = BarDataSet(yVals1,"")
    set1.setColors(ColorTemplate.rgb("439CFF"))
    val dataSets = ArrayList<IBarDataSet>()
    dataSets.add(set1)

    val data = BarData(dataSets)
    data.setValueTextSize(7f)
    data.barWidth = 0.5f

    val formatter = object : ValueFormatter() {
        // the labels that should be drawn on the XAxis
        val quarter = arrayOf("Sun","Mon","Tue","Wed","Thu","Fri","Sat")

        override fun getAxisLabel(value: Float,axis: AxisBase?): String {
            return quarter[value.toInt()]
        }
    }

    val xAxis = root.barChart.xAxis
    xAxis.granularity=1f // minimum axis-step (interval) is 1
    xAxis.valueFormatter=formatter
    xAxis.position=XAxis.XAxisPosition.BOTTOM
    xAxis.textSize=10f
    xAxis.textColor=Color.BLACK
    xAxis.setDrawAxisLine(false)
    root.barChart.setTouchEnabled(false)
    root.barChart.data=data
    root.barChart.animateXY(2000,2000)
    root.barChart.setFitBars(true)
    root.barChart.getDescription().setText(" ")
}
,

您可以使用 MPAndroidChart 中提供的 Combined-Chart(在本例中为条形图和折线图)

您可以在以下库中找到用途: MPAndroidChart

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...