MPAndroid CandleStickChart 在切换到 CombinedChart 时不起作用
MPAndroid CandleStickChart doesn't work when switched to CombinedChart
我有一个工作 CandleStickChart
(和一个工作 LineChart
)。
如果我更改为 CombinedChart
,则不会显示蜡烛图(或线条)。
这是怎么回事? (直觉是它与颜色和样式有关,但没有记录这些功能。)
private lateinit var candlestickChart:CombinedChart
fun createCandlestickChart() {
candlestickChart.setBackgroundColor(Color.BLACK)
candlestickChart.getDescription().setEnabled(false)
candlestickChart.getDescription().setEnabled(false)
candlestickChart.setTouchEnabled(true)
candlestickChart.setDrawGridBackground(false)
candlestickChart.setViewPortOffsets(36f, 6f, 4f, 4f)
candlestickChart.setDragEnabled(false)
candlestickChart.setScaleEnabled(true)
candlestickChart.setPinchZoom(false)
candlestickChart.legend.isEnabled = false
candlestickChart.setDrawBorders(true)
val xAxis: XAxis = candlestickChart.getXAxis()
xAxis.setAxisMinimum(-1f)
xAxis.setAxisMaximum(20f)
xAxis.setDrawGridLines(false)
val yAxis: YAxis = candlestickChart.getAxisLeft()
yAxis.setAxisMaximum(70f)
yAxis.setAxisMinimum(0f)
// yAxis.enableGridDashedLine(10f, 10f, 0f)
yAxis.setDrawZeroLine(true)
yAxis.setZeroLineWidth(2f)
yAxis.setLabelCount(7)
yAxis.setTextColor(Color.parseColor("#EEEEEE"))
candlestickChart.getAxisRight().setEnabled(false)
val candles = arrayListOf<CandleEntry>()
val cds: CandleDataSet = CandleDataSet(candles, "boxes")
cds.setDrawValues(false)
cds.setAxisDependency(YAxis.AxisDependency.LEFT)
cds.shadowWidth = 3f // Seems to be the line and border width.
cds.shadowColor = Color.WHITE // R.color.text comes out blue.
cds.decreasingColor = Color.WHITE
cds.decreasingPaintStyle = Paint.Style.STROKE
cds.increasingColor = Color.WHITE
cds.increasingPaintStyle = Paint.Style.STROKE
cds.neutralColor = Color.WHITE
cds.setDrawHighlightIndicators(true)
cds.highLightColor = Color.WHITE
cds.highlightLineWidth = 6f // Either nobody knows what this is or it's a secret.
cds.formLineWidth = 6f // This too.
cds.barSpace = 0.2f
viewModel.candlestickChartBoxData.value = cds
val lines = arrayListOf<Entry>()
val lds:LineDataSet = LineDataSet(lines, "med")
lds.setDrawValues(false)
lds.setAxisDependency(YAxis.AxisDependency.LEFT)
lds.setColor(Color.WHITE);
lds.setLineWidth(2.5f);
lds.setCircleColor(Color.WHITE);
lds.setFillColor(Color.WHITE);
lds.setDrawValues(true);
lds.setValueTextSize(10f);
lds.setValueTextColor(Color.WHITE);
viewModel.candlestickChartLineData.value = lds
val cd: CombinedData = CombinedData()
cd.addDataSet(cds)
cd.addDataSet(lds)
candlestickChart.setData(cd)
}
问题是CombinedDta.addDataSet
。
相反,必须这样做
val cd:CandleData = CandleData()
cd.addDataSet(cds)
val ld:LineData = LineData()
ld.addDataSet(lds)
val z: CombinedData = CombinedData()
z.setData(cd)
z.setData(ld)
我有一个工作 CandleStickChart
(和一个工作 LineChart
)。
如果我更改为 CombinedChart
,则不会显示蜡烛图(或线条)。
这是怎么回事? (直觉是它与颜色和样式有关,但没有记录这些功能。)
private lateinit var candlestickChart:CombinedChart
fun createCandlestickChart() {
candlestickChart.setBackgroundColor(Color.BLACK)
candlestickChart.getDescription().setEnabled(false)
candlestickChart.getDescription().setEnabled(false)
candlestickChart.setTouchEnabled(true)
candlestickChart.setDrawGridBackground(false)
candlestickChart.setViewPortOffsets(36f, 6f, 4f, 4f)
candlestickChart.setDragEnabled(false)
candlestickChart.setScaleEnabled(true)
candlestickChart.setPinchZoom(false)
candlestickChart.legend.isEnabled = false
candlestickChart.setDrawBorders(true)
val xAxis: XAxis = candlestickChart.getXAxis()
xAxis.setAxisMinimum(-1f)
xAxis.setAxisMaximum(20f)
xAxis.setDrawGridLines(false)
val yAxis: YAxis = candlestickChart.getAxisLeft()
yAxis.setAxisMaximum(70f)
yAxis.setAxisMinimum(0f)
// yAxis.enableGridDashedLine(10f, 10f, 0f)
yAxis.setDrawZeroLine(true)
yAxis.setZeroLineWidth(2f)
yAxis.setLabelCount(7)
yAxis.setTextColor(Color.parseColor("#EEEEEE"))
candlestickChart.getAxisRight().setEnabled(false)
val candles = arrayListOf<CandleEntry>()
val cds: CandleDataSet = CandleDataSet(candles, "boxes")
cds.setDrawValues(false)
cds.setAxisDependency(YAxis.AxisDependency.LEFT)
cds.shadowWidth = 3f // Seems to be the line and border width.
cds.shadowColor = Color.WHITE // R.color.text comes out blue.
cds.decreasingColor = Color.WHITE
cds.decreasingPaintStyle = Paint.Style.STROKE
cds.increasingColor = Color.WHITE
cds.increasingPaintStyle = Paint.Style.STROKE
cds.neutralColor = Color.WHITE
cds.setDrawHighlightIndicators(true)
cds.highLightColor = Color.WHITE
cds.highlightLineWidth = 6f // Either nobody knows what this is or it's a secret.
cds.formLineWidth = 6f // This too.
cds.barSpace = 0.2f
viewModel.candlestickChartBoxData.value = cds
val lines = arrayListOf<Entry>()
val lds:LineDataSet = LineDataSet(lines, "med")
lds.setDrawValues(false)
lds.setAxisDependency(YAxis.AxisDependency.LEFT)
lds.setColor(Color.WHITE);
lds.setLineWidth(2.5f);
lds.setCircleColor(Color.WHITE);
lds.setFillColor(Color.WHITE);
lds.setDrawValues(true);
lds.setValueTextSize(10f);
lds.setValueTextColor(Color.WHITE);
viewModel.candlestickChartLineData.value = lds
val cd: CombinedData = CombinedData()
cd.addDataSet(cds)
cd.addDataSet(lds)
candlestickChart.setData(cd)
}
问题是CombinedDta.addDataSet
。
相反,必须这样做
val cd:CandleData = CandleData()
cd.addDataSet(cds)
val ld:LineData = LineData()
ld.addDataSet(lds)
val z: CombinedData = CombinedData()
z.setData(cd)
z.setData(ld)