gpt4 book ai didi

android - 在 MPChart 中设置 X 轴上的日期格式

转载 作者:行者123 更新时间:2023-11-29 02:34:53 30 4
gpt4 key购买 nike

这里尝试在 x 轴上设置日期。我正在将 Unix 时间戳 传递到 LineChart 的入口点,但无法获得输出输出正确的结果。

事实证明,由于条目使用 float ,我失去了时间戳的精度......足以弄乱 x 轴上标签之间的间隔。 enter image description here

代码在这里

 mChart.getDescription().setEnabled(false);
mChart.setTouchEnabled(true);
mChart.setDragDecelerationFrictionCoef(0.5f);
mChart.setDragEnabled(true);
mChart.setScaleEnabled(true);
mChart.setDrawGridBackground(false);
mChart.setHighlightPerDragEnabled(false);
mChart.setBackgroundColor(Color.WHITE);
mChart.setViewPortOffsets(0f, 0f, 0f, 0f);
MonthPriceGraph = new ArrayList<>();
final ArrayList<String> Xdate = new ArrayList<>();

MonthPriceGraph = dataBaseManager.getPrice(Contants.getSymbol());
if (MonthPriceGraph.size() != 0) {
ArrayList<Entry> values = new ArrayList<Entry>();
for (int i = 0; i < MonthPriceGraph.size(); i++) {

Xdate.add(MonthPriceGraph.get(i).getCoinCCTime());
long t = Long.parseLong(MonthPriceGraph.get(i).getCoinCCTime());
Log.e(TAG, "Time is: " + MonthPriceGraph.get(i).getCoinCCTime());
float yValue = Float.parseFloat(MonthPriceGraph.get(i).getCoinCCPrice());
values.add(new Entry(Float.parseFloat(MonthPriceGraph.get(i).getCoinCCTime()), yValue));
}

LineDataSet set1 = new LineDataSet(values, "ETH");
set1.setAxisDependency(YAxis.AxisDependency.LEFT);

set1.setColor(Color.BLUE);
set1.setValueTextColor(Color.BLUE);
set1.setLineWidth(2.5f);
set1.setDrawCircles(true);
set1.setDrawFilled(true);
set1.setDrawValues(false);
set1.setCircleColor(getActivity().getResources().getColor(R.color.blue));
set1.setFillColor(getActivity().getResources().getColor(R.color.gry_color));
set1.setHighLightColor(Color.rgb(0, 0, 255));
set1.setDrawCircleHole(false);
LineData data = new LineData(set1);
data.setValueTextColor(Color.BLACK);
data.setValueTextSize(5f);
// set data
mChart.setData(data);
mChart.invalidate();
Legend l = mChart.getLegend();
l.setEnabled(false);
XAxis xAxis = mChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM_INSIDE);
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "fonts/worksenslight.ttf");
xAxis.setTypeface(tf);
xAxis.setTextSize(12f);
xAxis.setAvoidFirstLastClipping(true);
xAxis.setTextColor(Color.BLUE);
xAxis.setDrawAxisLine(true);
xAxis.setDrawGridLines(true);
xAxis.setTextColor(Color.rgb(0, 0, 0));
xAxis.setCenterAxisLabels(false);
xAxis.setValueFormatter(new IAxisValueFormatter() {

private SimpleDateFormat mFormat = new SimpleDateFormat("dd MMM,yyyy");

@Override
public String getFormattedValue(float value, AxisBase axis) {

Date s = new Date((long) (value * 1000L));
return mFormat.format(s);
}
});
YAxis leftAxis = mChart.getAxisLeft();
leftAxis.setPosition(YAxis.YAxisLabelPosition.INSIDE_CHART);
leftAxis.setTypeface(tf);
leftAxis.setTextSize(12f);
leftAxis.setTextColor(ColorTemplate.getHoloBlue());
leftAxis.setDrawGridLines(true);
leftAxis.setGranularityEnabled(false);
leftAxis.setAxisMinimum(8000);
leftAxis.setAxisMaximum(12000);

leftAxis.setYOffset(-9f);
leftAxis.setTextColor(Color.rgb(0, 0, 0));
YAxis rightAxis = mChart.getAxisRight();
rightAxis.setEnabled(false);
rightAxis.setEnabled(false);

如何解决这个问题。共享图像时输出错误。第一次约会是:2017 年 8 月 8 日2017 年 8 月 12 日

喜欢这个图案想展示图片

最佳答案

试试这个,这对我有用

XAxis xAxis = lineChart.getXAxis();

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
xAxis.setValueFormatter(new IndexAxisValueFormatter(getAreaCount));

public ArrayList<String> getAreaCount() {

ArrayList<String> label = new ArrayList<>();
for (int i = 0; i < areaList.size(); i++) //your date arraylist
label.add(areaList.get(i).getTopicName()); //your date
return label;
}

关于android - 在 MPChart 中设置 X 轴上的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646975/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com