如何在高图表中显示for循环的结果



我是这方面的新手(JS、Rails和highcharts,但它们真的很好),我真的很感谢你的帮助。我的故事是,我有一个for loop,我想在highcharts中显示for循环的结果。我该怎么做?

<p>A n: <%= @calculation.a_n %></p>
<p>H: <%= @calculation.h %></p>
<p>K: <%= @calculation.k %></p>
<p>P: <%= @calculation.p %></p>
<p>A: <%= @calculation.a %></p>
<small>T: <%= @calculation.created_at %></small>
<br /><br />
    <%= @calculation.a_n %> <br />
    <% @amount = (@calculation.h * @calculation.k) %> 
    <% @percent = (@calculation.h * @calculation.k) / @calculation.p %> 
  <% for i in 0..@calculation.a do %> 
    <% @newAmount = ((@amount/(@percent)) + @amount) %>
    <%= "#{i}" + " - #{@amount}" %><br />
    <% @amount=@newAmount %>
  <% end %>
<script type="text/javascript" charset="utf-8">
  $(function() {
    new Highcharts.Chart({
      chart: {
    renderTo: "calculations_chart"
      },
      title: {
    text: "Sum for a year"
      },
      xAxis: {
    text: "Years"
      },
      yAxis: {
    title: {
      text: "Sum"
        }
      },
      series: [{
    data: //for loop?
      }]
    });
  });
</script>
<div id="calculations_chart" style="width:560px; height:300px;"></div>

如果你有一个在循环中计算的值,你可以把它放在你想要的位置

series: [{
data: [<%=@amount%>]
  }]

或者,如果你有一系列数据存储在某个地方,你想迭代并将它们添加到你的图表中

series: [
      {
      data: [
<% for i in 0..@calculation.a do %> 
  <% @amount = ((@amount/(@percent)) + @amount) %>
  <%= @amount %>,
<% end %>
 ]}
]

页面中有很多逻辑,您可能需要考虑将其移动到控制器或模型中。为了在多个地方实现超级可重用性,您可以使用一个操作来提供JSON中的数据,这些数据是您在需要它的页面中异步获得的

编辑以匹配高图表格式

最新更新