Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MPAndroidChart-如何在折线图底部绘制条形图_Android_Charts_Mpandroidchart - Fatal编程技术网

MPAndroidChart-如何在折线图底部绘制条形图

MPAndroidChart-如何在折线图底部绘制条形图,android,charts,mpandroidchart,Android,Charts,Mpandroidchart,我想用成交量绘制股票的历史价格图,类似于: 使用,我使用CombinedChart获得了这个结果: 以下是我的代码片段: CombinedChart mChart = (CombinedChart) findViewById(R.id.chart); final ArrayList<BarEntry> barList = new ArrayList<>(); final ArrayList<Entry> lineList = new ArrayList&

我想用成交量绘制股票的历史价格图,类似于:

使用,我使用
CombinedChart
获得了这个结果:

以下是我的代码片段:

CombinedChart mChart = (CombinedChart) findViewById(R.id.chart);

final ArrayList<BarEntry> barList = new ArrayList<>();
final ArrayList<Entry> lineList = new ArrayList<>();

// add Bar & Line data entries
.....

// bar depends on LEFT y-axis
BarDataSet barSet = new BarDataSet(barList, "");
barSet.setAxisDependency(YAxis.AxisDependency.LEFT);
BarData barData = new BarData(barSet);

// line depends on RIGHT y-axis
LineDataSet lineSet = new LineDataSet(lineList, "");
lineSet.setAxisDependency(YAxis.AxisDependency.RIGHT);
LineData lineData = new LineData(lineSet);

// set data to chart
....

float barYMax = barData.getYMax();
float lineYMin = lineData.getYMin();

// to make bar appears at bottom
YAxis leftAxis = mChart.getAxisLeft();
leftAxis.setAxisMaximum(barYMax * 10);

// to make line appears at top
YAxis rightAxis = mChart.getAxisRight();
rightAxis.setAxisMinimum(lineYMin * 0.5f);
CombinedChart mChart=(CombinedChart)findViewById(R.id.chart);
最终ArrayList barList=新ArrayList();
最终ArrayList lineList=新ArrayList();
//添加条线数据项(&L)
.....
//条取决于左y轴
BarDataSet barSet=新的BarDataSet(barList,“”);
setAxisDependency(YAxis.AxisDependency.LEFT);
BarData BarData=新的BarData(barSet);
//直线取决于右y轴
LineDataSet lineSet=新的LineDataSet(lineList,“”);
lineSet.setAxisDependency(YAxis.AxisDependency.RIGHT);
LineData LineData=新的LineData(线集);
//将数据设置为图表
....
float barYMax=barData.getYMax();
float lineYMin=lineData.getYMin();
//使条形图显示在底部的步骤
YAxis leftAxis=mChart.getAxisLeft();
leftAxis.setaxis最大值(barYMax*10);
//使线条显示在顶部
YAxis rightAxis=mChart.getAxisRight();
右轴。设置轴最小值(lineYMin*0.5f);
为了使“条形图”上方出现“折线图”

  • 条形图取决于左y轴。为了使条形图显示在底部,我使用
    leftAxis.setaxismax(barYMax*10)
    将其比例放大

  • 折线图取决于右y轴。要向上移动队列,我需要
    rightAxis.setAxismimum(lineYMin*0.5f)

  • 我想知道有没有更好的方法来达到这个效果

    在我的解决方案中,折线图可能仍然与条形图部分重叠。理想情况下,我希望实现
    完全不重叠
    ,因为
    行完全显示在条形图的顶部