正如标题所说,我试图将MPAndroidChart包含在一个项目中,并且无法显示蜡烛。这是我的代码:
List<CandleEntry> ceList = new ArrayList<>();
ceList.add(new CandleEntry(0, 4.62f, 2.02f, 2.70f, 4.13f));
ceList.add(new CandleEntry(1, 5.50f, 2.70f, 3.35f, 4.96f));
ceList.add(new CandleEntry(2, 5.25f, 3.02f, 3.50f, 4.50f));
ceList.add(new CandleEntry(3, 6f, 3.25f, 4.40f, 5.0f));
ceList.add(new CandleEntry(4, 5.57f, 2f, 2.80f, 4.5f));
CandleDataSet cds = new CandleDataSet(ceList, "Entries");
cds.setColor(Color.BLUE);
cds.setValueTextColor(Color.RED);
CandleData cd = new CandleData(cds);
candleStickChart.setData(cd);
candleStickChart.invalidate();
但我明白了:
图表Xml
<com.github.mikephil.charting.charts.CandleStickChart
android:id="@+id/CandleStickChart"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
带有折线图的相同代码似乎工作正常。 我有什么想法可能做错了吗? 谢谢!
答案 0 :(得分:7)
尝试使用以下代码替换您的代码。
List<CandleEntry> ceList = new ArrayList<>();
ceList.add(new CandleEntry(0, 4.62f, 2.02f, 2.70f, 4.13f));
ceList.add(new CandleEntry(1, 5.50f, 2.70f, 3.35f, 4.96f));
ceList.add(new CandleEntry(2, 5.25f, 3.02f, 3.50f, 4.50f));
ceList.add(new CandleEntry(3, 6f, 3.25f, 4.40f, 5.0f));
ceList.add(new CandleEntry(4, 5.57f, 2f, 2.80f, 4.5f));
CandleDataSet cds = new CandleDataSet(ceList, "Entries");
cds.setColor(Color.rgb(80, 80, 80));
cds.setShadowColor(Color.DKGRAY);
cds.setShadowWidth(0.7f);
cds.setDecreasingColor(Color.RED);
cds.setDecreasingPaintStyle(Paint.Style.FILL);
cds.setIncreasingColor(Color.rgb(122, 242, 84));
cds.setIncreasingPaintStyle(Paint.Style.STROKE);
cds.setNeutralColor(Color.BLUE);
cds.setValueTextColor(Color.RED);
CandleData cd = new CandleData(cds);
candleStickChart.setData(cd);
candleStickChart.invalidate();
在此,您必须指定某些属性。
答案 1 :(得分:0)
我认为您必须为x轴使用1000以下的值,我不知道为什么,但是当我尝试此解决方案时,我的图表会像魅力一样工作 如果要为x轴添加时间,可以将时间戳除以1000000000.0,然后在值格式化程序中将此值与值相乘。