这个折线图中的特征是否可以在Flex中使用Adobe的内置图表组件实现?

时间:2012-01-13 13:29:19

标签: flash actionscript-3 flex

我是Flex / AS3的新手。我在下面附上了一个示例折线图。我想知道是否可以使用Flex(Flash Builder 4.6)中提供的标准线序列图创建这种类型的图表,或者下面是否绘制了非标准的图表,因此需要一些相关的定制。主要特点是:

  1. 不同的线条样式和颜色(虚线,点划线,实线,粗细,不透明)
  2. 单位的放置(y轴“秒”和x轴“Hz”)
  3. 图表下方的x轴缩放/平移控制条(移动和移出旋钮以设置x轴最小和最大绘制值)
  4. 记录x轴刻度,线性y轴刻度
  5. 数据提示(或者,有人称之为工具提示,未在下面显示)
  6. x轴和y轴刻度标签的SI单位。
  7. 我的猜测是,使用Adobe的内置图表完成所有事情都应该是非常标准的(项目6可能例外,见下文)。这是一个很好的假设吗?

    我特别关注x轴和y轴刻度标签(第6项)。例如,x轴刻度标记为数字:

    1, 10, 100, 1000, 10000, 100000, 1000000, 10000000
    

    但它们需要用SI单位替换,其中k = 1000,M = 1000000,因此相应的标记将是(用上面的字符串替换上面的数字)

    "1", "10", "100", "1k", "10k", "1M", "10M"
    

    对于y轴也是如此,其中p代表1e-12,并且n代表1e-9。

    我可以创建一个接受数字的算法并输出一个字符串来进行SI单位转换。但鉴于此,有没有办法轻松管理刻度线标签,用这些字符串替换默认数字?任何评论都非常感谢。

    Proposed Line Chart (just for example)

2 个答案:

答案 0 :(得分:3)

所有这些功能都可以使用Flex SDK中包含的Flex Charts库来实现。

  1. Different line styles
  2. (不确定,确定在哪里,需要谷歌搜索)
  3. 创建自定义组件并绑定到轴的minimummaximum
  4. Use LogAxis
  5. Custom DataTips
  6. Custom axis renderers

答案 1 :(得分:1)

您必须使用第三方代码才能达到您想要的效果,尤其是缩放和平移。

不同的线条样式和颜色(虚线,点划线,实线,粗,薄,不透明度)

厚度,颜色和不透明度是内置功能。例如,可以使用此link实现虚线。

单位的放置(y轴“秒”和x轴“Hz”)

您可以显示轴标签,但默认情况下它不会位于轴的末端。

图表下方的x轴缩放/平移控制条(移动和移出旋钮以设置x轴最小和最大绘制值)

这是棘手的部分。你可以用你的轴的极值来玩,但是你会遇到有关lineseries的问题,因为它们不会向你的轴范围之外的点画一条线。我的建议是切换你的dataProvider,但你也需要完全控制你的轴。

记录x轴刻度,线性y轴刻度

LogAxis是flex Charting框架的一部分,所以这里没问题。

数据提示(或者,有些人称之为工具提示,未在下面显示)

正如Timofei Davydik所写,数据提示是高度可定制的。

x轴和y轴刻度标签的SI单位。

自定义标签功能也可用于自定义数据的显示方式。

结论

如果我是你,我宁愿选择其他技术。 Flex Chart框架现在有点陈旧,暂时没有明显更新,因为Flex SDK已被“放弃”(或者给予开源基础,正如他们所说),不会进行进一步的更新。为了处理具有高性能的大量数据,DyGraph(用JavaScript编写)在我看来是一个很好的解决方案。