android - 使用 achartengine,如何在不使用 x 标签的情况下设置 x 轴值?

标签 android graph achartengine

对于我的 Android 应用程序,我需要让 x 轴代表频率轴。目前,我暂时使用 myRenderer.setXlabels() 。但是,这对于我的应用程序来说效率不够高,因为一旦设置了最小和最大 x 轴标签,如果缩小图表,则最小 X 标签左侧和右侧没有 x 轴值最大 X 标签的值。另外,如果放大,则只存在我明确具有程序标签的 x 轴值。因此,如果放大至少 2 倍,则不会显示 x 轴值 = :(

在 AChartEngine 演示应用程序中,他们有一个三角函数示例,其中绘制了 0 到 360 度的正弦和余弦波。与此示例类似,我希望频率轴从 0 到采样频率的一半,即 22050 (22.05e3),这样如果放大或缩小,总是存在相对于数据点的 x 轴值.

我要绘制的数据点数量通常会非常大(大约在 10,000 - 40,000 个点之间),但我一次只需要在图表中绘制一行(或一系列)数据。

如果有人知道如何在不使用标签的情况下做到这一点,我将不胜感激。 :)


更新(带示例):

下面 - Matlab 代码来表示频率轴的含义:

x = [0 5 -5 3 -3 1 -1 0];
X = fft(x);
absX = abs(X);
subplot(2,1,1)
plot(abs_X)
title('(a) General x-axis')

freq_axis = linspace(0,22.05e3,8);
subplot(2,1,2)
plot(freq_axis,abs_X)
title('(b) Frequency x-axis (Linearly-spaced)')

根据 Matlab 定义:

linspace - 线性间隔向量。
linspace(X1, X2) 生成 X1 和 X2 之间 100 个线性等距点的行向量。

linspace(X1, X2, N) 在 X1 和 X2 之间生成 N 个点。 对于 N = 1,linspace 返回 X2。

(a) general x-axis (time domain), (b) linearly-spaced frequency x-axis (frequency domain)

因此,在更简单的上下文中,我只想弄清楚如何更改 x 轴值来表示其他数值(从时域 x 值转换为频域 x 轴值)。

最佳答案

您可以使用以下方式添加自定义标签:

renderer.addXTextLabel(x, "text");

如果您只需要自定义标签,则可以禁用默认标签:

renderer.setXLabels(0);

关于android - 使用 achartengine,如何在不使用 x 标签的情况下设置 x 轴值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15795811/

相关文章:

android - Achartengine 图最初不显示

java - 使用 AsyncTask 成功更新 RecyclerView,但 Activity/UI 线程中的 Arraylist 大小未更改

android - 如何在 android 中禁用 GestureListener?

python - 将社区检测与图形或其他库重叠

java - 如何使用集合和队列查找图的可达性

android - AchartEngine(隐藏 X 和 Y 轴的负值)

android - CoordinatorLayout 和 AppBarLayout 高程

java - Jsoup .select 返回空值但元素确实包含文本

graph - 寻找关键路径?

android - 在 Achartengine 中隐藏/显示系列