使用Chartkick gem和Google图表绘制线性函数

时间:2017-01-10 07:32:47

标签: ruby-on-rails ruby charts google-visualization chartkick

我试图通过在我的rails应用程序上使用Chartkick gem和google图表来绘制线性函数(例如y = ax + b)。

'a'和'b'将作为参数给出。

问题在于我试图使用谷歌图表从斜坡'a'和'b'获得无限线图,我不知道如何以正确的方式实现这一点。

我提出了绘制带有两个点( - b / a,0)和(0,b)的折线图的解决方案,并在其上提供了trendlines选项。

<!-- y = 0.55x floatify(2,@datas[4][2]) + 1.47 floatify(2,@datas[3][2]) -->
<%= line_chart [
               {name: "targets",
                data: [
                   ["#{-(@datas[3][2].to_f/@datas[4][2].to_f).round(2)}",0],
                   [0,"#{@datas[3][2].to_f}"]
                ]
               },
           ],
           library: {
               title: "#{@simplereg.variable_name}",
               subtitle: "#{@simplereg.data_name}",
               legend: "right",
               vAxis: {title: 'average'},
               trendlines: {
                  0: {
                      type: 'exponential',
                      visibleInLegend: true
                  }
                }
           }
%>

然而,与谷歌图表文档所说的不同,rails无法读取'0'值作为趋势线的选项。 - &GT; https://developers.google.com/chart/interactive/docs/gallery/trendlines 我不知道如何修复此代码。

请帮助我......我不介意抛弃这些代码并以完全不同的方式写作。

非常感谢。

1 个答案:

答案 0 :(得分:1)

使用以下内容

&#13;
&#13;
<%= javascript_include_tag "https://www.gstatic.com/charts/loader.js" %>


<%= line_chart [
                   {name: "targets",
                    data: [
                        ["-2/3",0],
                        [0,"2"]
                    ]
                   },
               ],
               library: {
                   title: "ABC",
                   subtitle: "XYZ",
                   legend: "right",
                   vAxis: {title: 'average'},
                   trendlines: {
                       "0"=> {
        type: 'exponential',
        visibleInLegend: true
    }
    }
    }
%>
&#13;
&#13;
&#13;

基本上代替了symbo 0:使用&#34; 0&#34; =&GT;