加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails chartkick:在多系列折线图中自定义单独

发布时间:2020-12-16 21:03:33 所属栏目:百科 来源:网络整理
导读:我正在使用chartkick制作一个包含以下代码的多系列折线图: %= line_chart [ {name: @track.name,data: records_of_track(@track).map{|record| [record.time_entered,record.entry]}},{name: "Goal",data: [[@track.goal_by,@track.goal]]},{name: "Goal tr
我正在使用chartkick制作一个包含以下代码的多系列折线图:
<%= line_chart [
    {name: @track.name,data: records_of_track(@track).map{|record| [record.time_entered,record.entry]}},{name: "Goal",data: [[@track.goal_by,@track.goal]]},{name: "Goal trend line",data: [[most_recent_record(@track).time_entered,most_recent_record(@track).entry],[@track.goal_by,@track.goal]]}
    ]%>

这就是它的样子:

基本的想法是蓝色是用户输入的内容,红色是他们的目标黄色加入用户最近进入目标的某种“趋势线”.我想自定义趋势线没有端点(pointSize:0)和虚线(lineDashStyle:[5,5]),而不是其他两个.我试过这样做

<%= line_chart [
    {name: @track.name,@track.goal]],library:  {pointSize: 0,lineDashStyle: [5,5]}}
    ]%>

但它没有用,因为我得到了与以前相同的输出并尝试这样做

<%= line_chart [
    {name: @track.name,@track.goal]]}
    ],5]} %>

但这使得所有的线都破了,并且消失了所有的点,正如预期的那样:

那么如何使这些属性仅适用于一条曲线而不适用于其他两条曲线呢?如果没有直接的chartkick实现,知道如何只使用谷歌图表来做这件事也会有所帮助.只要我获得功能!

编辑1:看到this后,我尝试使用系列选项来改变一些参数(这里:lineWidths,因为它最容易键入),但这也没有用,我得到了一条错误信息.这是我的代码:

<%= line_chart [
    {data: [[most_recent_record(@track).time_entered,{name: @track.name,@track.goal]]}

],library:  library_settings %>

<% library_settings = {
    width: 600,vAxis: {ticks: choose_ticks(@track)},colors: ['ff9900','3366cc','dc3912'],series: {
        0: {lineWidth: 1},1: {lineWidth: 2},2: {lineWidth: 10}
    }
} %>

但我只得到了错误

....html.erb:16: syntax error,unexpected ':',expecting => 0: {lineWidth: 1},^ ....html.erb:16: syntax error,unexpected ',',expecting keyword_end ....html.erb:17: syntax error,expecting keyword_end ....html.erb:19: syntax error,unexpected '}',expecting keyword_end

解决方法

看来你现在正处于正确的道路上.您现在获得的语法错误应该通过以下方式修复:
<% library_settings = {
    width: 600,series: {
        0 => {lineWidth: 1},1 => {lineWidth: 2},2 => {lineWidth: 10}
    }
} %>

变量library_settings是一个ruby散列,在ruby中,数字键允许使用哈希值,但它们必须使用hashrocket语法,而不是新的冒号语法.为了澄清:

2.1.2 :001 > { 0: {lineWith: 1} }
SyntaxError: (irb):1: syntax error,expecting =>
{ 0: {lineWith: 1} }
    ^
(irb):1: syntax error,expecting end-of-input

2.1.2 :002 > { 0 => {lineWith: 1} }
=> {0=>{:lineWith=>1}}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读