0

多くの問題が発生した後、最終的にプロットしましたが、正しいデータを取得しましたが、いくつかの調整が必要です。

たとえば、ユーザーが同じ日に新しいログを登録した場合、そのログのコストを取得して同じ日のログに追加するか、それ以上ない場合は単に表示する必要があります。レイルキャスト エピソード 223に従って、少し手伝ってください。 . しかし、私の問題は次のとおりです。新しいログを追加すると、新しいバーが作成されます:(ログは2つしかありません。新しいログを作成します) ここに画像の説明を入力 これが私のアプリです。 ここに画像の説明を入力

また、日時を修正する必要があります。これが私のコードです:

    $(function () {
      new Highcharts.Chart({
        chart: { renderTo: 'foo_chart',defaultSeriesType: 'column' },
        title: { text: 'tanking costs daily' },
        xAxis: { type: 'datetime' },
        yAxis: {
          title: { text: 'cost' }
        },
        tooltip: {
          formatter: function () {
            return Highcharts.dateFormat("%B %e %Y", this.x) + ': ' + '$' + Highcharts.numberFormat(this.y, 2);
          }
        },
        series: [{
          name: 'Days',
          pointInterval: <%= 1.day * 1000 %>, 
          pointStart: <%= 1.weeks.ago.at_midnight.to_i * 1000 %>,
          data:[
            <% for tankinglog in @tankinglog  %>
              <%= "(" + tankinglog.cost.to_f.round(2).to_s + "),"%>
            <% end %>
          ]
        }]
      });
    });

写真のリストが表示されている場合、3 つのログがあります...最後の 2 つのログは同じ日付であり、これらは同じバーにコストの合計とともに表示される必要があります

4

1 に答える 1

1

あなたの質問は非常に紛らわしいです。すべてのデータを 1 つの棒グラフにまとめたいですか? リストにある数字ごとに新しいバーが作成されますdata。したがって、 for-each ループは の各アイテムの新しいバーを作成しています@tankinglog。解決策は、必要なものを 1 つの数値に合計してから、リストに追加することです。

あなたの質問が貧弱であるため、あなたが何を求めているのか正確にはわかりませんが、ここにすべての値が1つのバーに合計されています.

$(function () {
  new Highcharts.Chart({
    chart: { renderTo: 'foo_chart',defaultSeriesType: 'column' },
    title: { text: 'tanking costs daily' },
    xAxis: { type: 'datetime' },
    yAxis: {
      title: { text: 'cost' }
    },
    tooltip: {
      formatter: function () {
        return Highcharts.dateFormat("%B %e %Y", this.x) + ': ' + '$' + Highcharts.numberFormat(this.y, 2);
      }
    },
    series: [{
      name: 'Days',
      pointInterval: <%= 1.day * 1000 %>, 
      pointStart: <%= 1.weeks.ago.at_midnight.to_i * 1000 %>,
      data:[
        <% 
        result = 0;
        for tankinglog in @tankinglog 
            result += tankinglog.cost.to_f
        end %>
        <%= result.round(2).to_s %>
      ]
    }]
  });
});
于 2012-08-09T19:08:58.413 に答える