【问题标题】:HighCharts: drawing graph paper for ECG on AndroidHighCharts:在 Android 上为心电图绘制方格纸
【发布时间】:2022-02-04 16:47:11
【问题描述】:

在我的 Android 应用程序中,我发现需要在我的部分活动中绘制 ECG 蓝牙设备采集的结果;在其他活动中,我可以毫无问题地使用 HighCharts 绘制图表以可视化其他重要参数,但是对于 ECG,产生了很多挑战!

第一个,也是当时最困难的,是画心电图所在的方格纸;不知道的人,它是一个特殊的网格,由正方形(刻度)组成,主要由5个次要组成,X轴代表时间(0.2s大刻度,0.04s小刻度)和Y轴电压(0.5 mV 主要刻度,0.1mV 次要刻度)。

我的目标是绘制这张方格纸,保持这些正方形的大小固定,例如,在垂直和水平方向上,主要刻度为 25dp(因此次要刻度为 5d)。

使用各种 HighCharts 属性,如

  • setTickPixelInterval
  • setTickInterval
  • setMinotTickInterval

此外,当采集的持续时间发生变化时,图形会拉伸以减少图形长度(也使用 scrollableArea),从而修改所需的刻度尺寸。

有一种方法可以以 HighChart 永远不会修改的方式来修复刻度尺寸?

提前致谢!

【问题讨论】:

  • 您可以使用xAxis.tickPositions 选项来设置x 轴上具有特定刻度的数组。 xAxis.tickPositioner此选项运行一个回调函数,该函数返回一个数组,指示刻度在轴上的位置。
  • 谢谢!我解决了这个问题,但另一个问题来了!我必须将图表放在布局的特定部分。一开始我尝试检索此布局的宽度和高度,例如,我获得了 800x600,因此我将这些值放入 chart.setWidth(800) 和 chart.setHeight(600) 但图表不适合布局,似乎尺寸在运行时会发生变化。如何测量我的布局的实时尺寸或使图表适合我的有效布局尺寸?谢谢!

标签: java android android-studio graph highcharts


【解决方案1】:

HIChart 对象的高度和宽度以像素为单位,而您从容器中得到的可能是以 dp 为单位的值。您需要将这些值转换为像素并将该值用于图表的高度/宽度。

这实际上只会改变容器中图表的大小,即在我们的HIChartView 中。我宁愿不移动图表的高度/宽度值,而是直接在HIChartView上操作。

【讨论】:

  • "HIChart 对象的高度和宽度以像素为单位,你从容器中得到的可能是 dp 中的值" 我认为是错误的,容器的 View.getWidth/getHeight 返回像素,但也许这些像素不是真实的。无论如何,我需要它来设置最小高度和宽度以避免像素拉伸,而我可以设置这些值的唯一方法是在 HiChart 对象上,在 HiChartView 上没有方法可以做到这一点。
  • HIChart 对象的高度和宽度字段,以像素为单位。我怀疑HIChartView 还被包裹在某个容器中,所以如果您知道它的尺寸,然后使用它们将其设置为 HIChart。您可以尝试在其中一个 HIChartView 维度上设置包装内容(另一个维度必须具有匹配的父级或 dp 中的固定值),而不必担心。如果您需要更好的帮助,我们需要查看您的代码。
猜你喜欢
  • 2022-11-30
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多