android-studio - Android 应用开发 - 库 android-graphview
问题描述
我在 android studio 中的图形视图库上可视化时间序列数据时遇到问题。当我试图在 x 轴上针对非常小的值(以 0.00003 的间隔)绘制图表时,没有图表。但是,当我尝试针对整数值(在 1 的间隔内)进行绘图时,显示的图形与预期的一样。
我的工作代码 -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time);
Intent intent = getIntent();
int sample_freq = 32768;
double [] data = intent.getDoubleArrayExtra(DataActivity.EXTRA_TIME_DATA);
int n = data.length;
GraphView graph = findViewById(R.id.graph);
double sample_time = 1/sample_freq;
DataPoint[] points = new DataPoint[n];
for(int i = 0; i < n ; i++)
{
points[i] = new DataPoint(i, data[i]);
}
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(points);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(-15);
graph.getViewport().setMaxY(15);
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(100);
graph.getViewport().setMaxX(5000);
graph.getViewport().setScalable(true);
graph.getViewport().setScalableY(true);
graph.addSeries(series);
TextView textView = findViewById(R.id.textView);
String message = String.valueOf(n);
textView.setText(message);
}
不工作的代码 -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time);
Intent intent = getIntent();
int sample_freq = 32768;
double [] data = intent.getDoubleArrayExtra(DataActivity.EXTRA_TIME_DATA);
int n = data.length;
GraphView graph = findViewById(R.id.graph);
double sample_time = 1/sample_freq;
DataPoint[] points = new DataPoint[n];
for(int i = 0; i < n ; i++)
{
points[i] = new DataPoint(i*sample_time, data[i]);
}
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(points);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(-15);
graph.getViewport().setMaxY(15);
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(0.01);
graph.getViewport().setMaxX(1);
graph.getViewport().setScalable(true);
graph.getViewport().setScalableY(true);
graph.addSeries(series);
TextView textView = findViewById(R.id.textView);
String message = String.valueOf(n);
textView.setText(message);
}
解决方案
推荐阅读
- python - 使用 python Faker lib 获取随机语言环境
- excel - 在 Vba Excel 中没有 If & Next 没有 For 的 Else
- excel - 如何通过CAPL打开excel文件/日志文件查看
- html - 如何对齐两个具有不同最大宽度的div
- javascript - Cloudflare Workers - SSE
- java - JAMA 库奇异值分解算法
- javascript - 从反应应用程序的模态内部单击下一个和上一个按钮时,无法使动画(淡入淡出)在模态上工作
- sql - 在 SQL 中不使用多个 if else 的多个条件
- python - 在数据框中添加缺失的天数
- flutter - Flutter:将项目从一个列表转移到另一个列表