3

我是 Rails(和 StackOverflow)的新手,所以如果这是一个“愚蠢”的问题,我深表歉意。我已经组装了一个非常简单的 Rails 应用程序。它从另一台服务器接收数据(通过 HTTP POST)。我想绘制发送的数据 - 特别是,我希望绘制温度与时间的关系图。

我正在尝试使用Flotilla生成这些图表,但除了主页上的一行示例之外,我似乎找不到太多关于如何使用它的文档:

        = chart("graph", {"Store 1" => {:collection => @store_one, :x => :date, :y => :sales }, "Store 2" => {:collection => @store_two, :x => :date, :y => :sales }})

这是我的 index.html.erb:

<table>
  <tr>
    <th>Temperature</th>
    <th>Time</th>
  </tr>

<% for post in @posts %>
  <tr>
    <td><%=h post.temperature %></td>
    <td><%=h post.created_at %></td>
  </tr>
<% end %>
</table>
<%= chart("graph", { "Graph1" => { :collection => @posts, :x => :created_at, :y => :temperature }})%>
<br />

第一部分简单地打印出温度和时间列表。这工作正常。不幸的是,第二部分 - 实际图表 - 似乎不起作用。实际上没有任何显示。

如果我查看生成的 HTML 的源代码,我会看到:

    <script language="javascript" type="text/javascript" src="/javascripts/jquery.flot.pack.js"></script>
    <script type="text/javascript">
      $.plot($('#graph'), [{"data":[[1234191865.0,12.0],[1234192069.0,15.0],[1234192113.0,16.0],[1234192123.0,18.0],[1234192189.0,21.0],[1234192203.0,25.0],[1234192320.0,27.0],[1234192329.0,29.0],[1234192384.0,30.0],[1234192391.0,31.0],[1234192402.0,35.0],[1234192409.0,29.0],[1234192412.0,31.0],[1234192414.0,27.0],[1234192419.0,25.0],[1234211826.0,27.0]],"label":"Graph1"}], {});
    </script>

但没有显示实际的图表。提前感谢您的帮助。

4

2 回答 2

6

对我有用的是在视图顶部添加这一行:

<%= javascript_include_tag 'jquery-1.5.1','flot/jquery.flot.js','excanvas.pack.js','jquery.flot.pack.js' %>

这意味着在我看来,要包含使用 flot 所需的所有 javascript。还要确保在 /public/javascripts/ 文件夹下拥有所有 js 文件

于 2011-02-26T20:42:41.923 回答
5

尝试在页面的任何位置添加div带有 id 的元素graph;它将用作图表的画布。

<div id="graph" style="width:600px;height:300px;"></div>

元素的id必须与您作为第一个参数传递给 的字符串匹配chart

如有疑问,您可以查看Flot 网站上各种示例页面的来源。

于 2009-02-23T00:41:59.040 回答