【发布时间】:2018-04-04 06:35:33
【问题描述】:
我正在创建烛台图表
来自 API:https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=USD&limit=10 使用库:https://github.com/PhilJay/MPAndroidChart
当我创建以数值计数为 X 轴的图表时,没有问题(ploat_point.add(new CandleEntry(i,high,low,open,close); in for 循环)。
但是当我在 for 循环中使用 ploat_point.add(new CandleEntry(time,high,low,open,close); 并使用我的自定义函数解析 X 轴值时。
即:
xAxis = candle_chart.getXAxis();
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
Log.e(TAG, "getFormattedValue: " + (int) value);
return Utilities.timeStampToMonth((int) value + "");
}
});
这一次它仅在绘制样式设置为Paint.Style.FILL_AND_STROKE 时显示图表,但它不会增加candleDataSet.setBarSize() 的条形大小。它仅取决于candleDataSet.setShadowWidth()。
我的代码:
private void drawCandleStickChart(JSONArray dataArr) throws JSONException {
mChart.setVisibility(View.GONE);
ArrayList<CandleEntry> plot_point = new ArrayList<>();
for (int i = 0; i < dataArr.length(); i++) {
JSONObject point = dataArr.getJSONObject(i);
int time = Math.round(Float.parseFloat(point.getString("time")));
float open = Float.parseFloat(String.valueOf(point.getString("open")));
float close = Float.parseFloat(String.valueOf(point.getString("close")));
float high = Float.parseFloat(String.valueOf(point.getString("high")));
float low = Float.parseFloat(String.valueOf(point.getString("low")));
plot_point.add(new CandleEntry(time, high, low, open, close));
}
CandleDataSet cds = new CandleDataSet(plot_point, "Entries");
cds.setShadowColor(Color.WHITE);
cds.setDecreasingColor(Color.RED);
cds.setDecreasingPaintStyle(Paint.Style.FILL_AND_STROKE);
cds.setIncreasingColor(Color.GREEN);
cds.setIncreasingPaintStyle(Paint.Style.FILL_AND_STROKE);
cds.setNeutralColor(Color.BLUE);
cds.setShowCandleBar(true);
cds.setBarSpace(0.5f);
cds.setShadowWidth(0.1f);
cds.setHighlightEnabled(false);
cds.setDrawValues(false);
candle_chart.setMaxVisibleValueCount(20);
CandleData cd = new CandleData(cds);
candle_chart.setData(cd);
candle_chart.invalidate();
candle_chart.setVisibility(View.VISIBLE);
}
我需要 X 轴,因为时间和条形大小不仅仅是阴影,请帮助我。
【问题讨论】:
-
可以发代码吗?
-
如何解决?
标签: android graph android-graphview