MPChart обрезает вертикальную легенду, когда она помещается в нижний центр моего графика - PullRequest
0 голосов
/ 30 ноября 2018

Я использую MPcharts для создания круговой диаграммы.Диаграмма создана из данных, которые я получаю из веб-API.График выглядит хорошо, но легенда обрезается внизу.Эта диаграмма имеет две записи, но отображается только одна.Это должен быть один вертикальный столбец внизу графика.Просто чтобы попробовать это, я поставил это сверху и увидел обе записи.

enter image description here

Я пробовал перенос слов, добавление смещения (к легенде и диаграмме) и просто изменение размера диаграммы.Вот мой код:

val entries : MutableList<PieEntry> = ArrayList()
                    val mChart = com.github.mikephil.charting.charts.PieChart(context)
                    if(chart.data != null) {
                        for (i in chart.data!!.dataPoints) {
                            if (i.y != null)
                                entries.add(PieEntry(i.y!!, i.label))
                        }
                        mChart.centerText = chart.data!!.total.toString()
                        mChart.setCenterTextSize(52f)

                        val set = PieDataSet(entries, "")
                        set.resetColors()
                        set.label = null
                        set.colors = getColorSchemeArray(mTheme, context)
                        val data = PieData(set)
                        data.setDrawValues(false)
                        mChart.data = data
                        holder.mCardLayout.gravity = Gravity.CENTER_HORIZONTAL
                        set.sliceSpace = 3f
                        mChart.setDrawEntryLabels(false)
                        mChart.description.text = ""
                        mChart.setTransparentCircleAlpha(0)



                        holder.mCardLayout.addView(mChart)
                        /*val mChartSide = if(holder.mCardLayout.width *.65 < holder.mCardLayout.height *.375)
                            (holder.mCardLayout.width *.65).toInt()
                            else
                            (holder.mCardLayout.height *.375).toInt()*/


                        val mChartSide = (holder.mCardLayout.width *.65).toInt()
                        mChart.layoutParams.height = mChartSide
                        mChart.layoutParams.width = mChartSide


                        val mLegend = mChart.legend
                        mLegend.form = Legend.LegendForm.CIRCLE

                        mLegend.textSize = 20f
                        mLegend.orientation = Legend.LegendOrientation.VERTICAL
                        mLegend.isWordWrapEnabled = true
                        mLegend.maxSizePercent = 1f

                        mLegend.xEntrySpace = 15f
                        mLegend.yOffset = 5f
                        mLegend.horizontalAlignment = Legend.LegendHorizontalAlignment.CENTER
                        mLegend.verticalAlignment = Legend.LegendVerticalAlignment.BOTTOM
                        mChart.extraBottomOffset = 10f
...