如何在 ContEx 库中将刻度标签从小数更改为整数?

问题描述 投票:0回答:1

同学们大家好。

我正在 Elixir 项目中使用 Elixir 库 ContEx 创建图表 - https://hexdocs.pm/contex/Contex.html

我有一个条形图。下面是我用来创建此图表的代码。

    dataset = [
      ["Sage", scores.sage],
      ["Scientist", scores.scientist],
      ["Leader", scores.leader],
      ["Warrior", scores.warrior],
      ["Mother", scores.mother],
      ["Entrepreneur", scores.entrepreneur],
      ["Perfectionist", scores.perfectionist],
      ["Servant", scores.servant]
    ]

    options = [
      custom_value_scale:
        Contex.ContinuousLinearScale.new()
          |> Contex.ContinuousLinearScale.domain(0, 56)
          |> Contex.Scale.set_range(0, 56),
      colour_palette: ["ffdfae"],
      data_labels: false,
    ]


    Contex.Dataset.new(dataset)
    |> Contex.Plot.new(Contex.BarChart, 550, 280, options)
    |> Contex.Plot.to_svg()
    |> elem(1)

现在我应该如何将 y 轴小数刻度更改为整数。我发现了以下功能。但这似乎并没有提供我想要的答案。

https://hexdocs.pm/contex/Contex.BarChart.html#custom_value_formatter/2

这是我需要使用的功能吗?我没有找到任何其他方法可以做到这一点。请帮我解决这个问题。

我应该如何将 y 轴刻度更改为整数?

charts elixir phoenix-live-view
1个回答
0
投票

我认为这是不可能的。

ContinuousLinearScale
已将浮动“烘焙”到源代码中。您可以从该模块复制代码(在
deps/contex/lib/chart/scale/continuous_linear_scale.ex
中)并制作自己的使用整数的模块,例如
DiscreteLinearScale
。我还没有阅读整个模块,所以我不知道它有多难。首先,只需找到所有浮点数并将它们更改为整数。这可能足以让它发挥作用。

© www.soinside.com 2019 - 2024. All rights reserved.