如何在 Flex 图表轴上仅显示整数?

发布于 2024-10-28 22:17:02 字数 112 浏览 4 评论 0原文

我试图显示一些整数数据,但条形图在轴上使用小数值,这在这种情况下没有意义。有没有办法强制图表在轴上仅使用整数值?我不知道范围,所以它可能是 1 到 10000000 之间的任何值,所以我不能明确地设置所有内容。

I'm trying to show some data that's integers but the BarChart is using fractional values on the axis which makes no sense in this scenario. Is there any way to force the chart to only use integer values on the axis? I don't know the range so it could be anything from 1 to 10000000, so I can't just explicitly set up everything.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟花肆意 2024-11-04 22:17:02

我自己就遇到了这个问题,并使用我需要更改的轴的自定义 labelFunction 解决了它。

图表 MXML:

<mx:BarChart dataProvider="{data}" width="100%" height="100%">
    <mx:series>
            <mx:BarSeries xField="x" yField="y" />
    </mx:series>
    <mx:verticalAxis>
        <mx:LinearAxis id="verticalAxis" labelFunction="verticalAxis_labelFunction" />
    </mx:verticalAxis>
</mx:BarChart>

labelFunction 脚本:

protected function verticalAxis_labelFunction(labelValue:Object, previousValue:Object, axis:IAxis):String
{
    if (Number(labelValue) != int(labelValue))
        return "";
    else
        return String(labelValue);
}

这种方法的一个缺点是小数值的刻度仍然存在。

Just ran into this myself and resolved it using a custom labelFunction for the axis I needed to change.

Chart MXML:

<mx:BarChart dataProvider="{data}" width="100%" height="100%">
    <mx:series>
            <mx:BarSeries xField="x" yField="y" />
    </mx:series>
    <mx:verticalAxis>
        <mx:LinearAxis id="verticalAxis" labelFunction="verticalAxis_labelFunction" />
    </mx:verticalAxis>
</mx:BarChart>

labelFunction script:

protected function verticalAxis_labelFunction(labelValue:Object, previousValue:Object, axis:IAxis):String
{
    if (Number(labelValue) != int(labelValue))
        return "";
    else
        return String(labelValue);
}

The one disadvantage to this approach is that the ticks will still be present for the decimal values.

几度春秋 2024-11-04 22:17:02

我发现 有效。对于较小的范围,如 0-2,它会标记为 0、1、2,但对于较大的范围,如 0-16,它会标记为 0、5、10、15。

I found that <mx:LinearAxis interval="1"/> works. With a small range, like 0-2 it labels with 0, 1, 2 but with a larger range, like 0-16, it labels with 0, 5, 10, 15.

一影成城 2024-11-04 22:17:02

将 MaximumLabelPrecision 设置为 0。
http://help.adobe.com/en_US /FlashPlatform/reference/actionscript/3/mx/charts/LinearAxis.html

<mx:verticalAxis>
    <mx:LinearAxis id="valueAxis" maximumLabelPrecision="0"/>
</mx:verticalAxis>

Set the maximumLabelPrecision to 0.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/charts/LinearAxis.html

<mx:verticalAxis>
    <mx:LinearAxis id="valueAxis" maximumLabelPrecision="0"/>
</mx:verticalAxis>
°如果伤别离去 2024-11-04 22:17:02

ChartName.Series(seriesName).YValueType = ChartValueType.Int32

来自 - (Visual Studio 2010 图表控件:使 Y 轴为整数值,而不是小数)

ChartName.Series(seriesName).YValueType = ChartValueType.Int32

From - (Visual Studio 2010 Chart control: Make Y Axis an Integer value, not decimal)

可可 2024-11-04 22:17:02

我认为你肯定需要向我们展示一个发生这种情况的例子。当我这样做时(在一个非常简单的示例中),即使我的数据由 Number 组成,我也会在轴上得到整数:

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        var data:ArrayCollection = new ArrayCollection([
            { x: 5.5555333343, y: 5.111 },
            { x: 7.2, y: 9.5 },
            ]);

    ]]>
</fx:Script>

<mx:BarChart dataProvider="{data}" width="100%" height="100%">
    <mx:series>
        <mx:BarSeries xField="x" yField="y" />
    </mx:series>
</mx:BarChart>

在此处输入图像描述

I think you definitely need to show us an example where this happens. When I do it (in a very simple example), I get integers on the axis even though my data is made up of Numbers:

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        var data:ArrayCollection = new ArrayCollection([
            { x: 5.5555333343, y: 5.111 },
            { x: 7.2, y: 9.5 },
            ]);

    ]]>
</fx:Script>

<mx:BarChart dataProvider="{data}" width="100%" height="100%">
    <mx:series>
        <mx:BarSeries xField="x" yField="y" />
    </mx:series>
</mx:BarChart>

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文