我正在使用 hellochart 库 https://github.com/lecho/hellocharts-android在我的应用程序中显示折线图。
当我尝试生成具有单个值的图表时,它只是显示一个空图表(它应该在图表中显示一个点来指示该值,对吧?)。
如果第一个和第二个 y 轴值相同(当只有 2 个值时),问题仍然存在。
知道为什么会出现这个奇怪的问题吗?
下面给出了我使用的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<String> datelist = new ArrayList<String>();
List<Float> weightlist = new ArrayList<Float>();
datelist.add("12/Apr/2020");
weightlist.add(72f);
datelist.add("13/Apr/2020");
weightlist.add(72f);
LineChartView chart = findViewById(R.id.chart);
List<AxisValue> axisValues = new ArrayList<AxisValue>();
List<PointValue> values = new ArrayList<PointValue>();
for (int i = 0; i < datelist.size(); ++i) {
values.add(new PointValue(i, weightlist.get(i)));
axisValues.add(new AxisValue(i).setLabel(datelist.get(i)));
}
Line line = new Line(values).setColor(Color.BLUE).setCubic(false);
line.setHasLabels(true);
List<Line> lines = new ArrayList<Line>();
lines.add(line);
LineChartData data = new LineChartData();
data.setLines(lines);
data.setAxisXBottom(new Axis(axisValues));
data.setAxisYLeft(new Axis());
chart.setLineChartData(data);
}
}
最佳答案
这是我最终找到的解决方案,手动设置视口(viewport)。
float ymax= maxyvalue +10f;
final Viewport v = new Viewport(chart.getMaximumViewport());
v.top =ymax; //max value
v.bottom = 0f; //min value
chart.setMaximumViewport(v);
chart.setCurrentViewport(v);
希望它能对将来的人有所帮助。
关于java - 当存在单个值或 y 轴值相同时,Hellocharts Android 库不会渲染图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61190544/