rails中使用Chart.js制作圖表

一、簡介

制作圖表有很多的可以選擇,如果想要實現的圖表擁有的是比較直白的關系比較時,可以考慮使用chart.js,如果是制作復雜的圖表建議使用D3進行繪制。它只有六種圖表模式,包括:雷達圖(radar)、極地區(qū)域圖(Polar area)、餅圖(Pie)、環(huán)形圖(Doughnut)、柱狀圖(Bar)和曲線圖(Line)。用起來簡單,做出來的效果也很亮麗。記錄一下rails中使用他的基本過程。
下面上圖看看效果:

雷達圖:
Paste_Image.png
極地區(qū)域圖:
Paste_Image.png

更多請見chart.js 官網

二、安裝

很方便,直接有gem可以安裝。
# 在Gemfile中添加

gem 'chart-js-rails'

# 運行安裝命令

bundle

注: 查看bundle是否成功安裝gem的命令,正常在跑完bundle之后都有以下命令提示。

bundle show [gemname]

三、使用

1、引用

# 在需要制作圖表的頁面對應的.js/.coffee文件
//= require Chart

2、基本參數
chart.js的主要參數其實只有以下四個:
type:'radar(line/bar/others)' => 設置顯示的圖表的類型(以上六種之一)
labels:'['python','ruby','java','c']' => 設置數據分類標簽(如柱狀圖的橫坐標)
label:'中國(/美國/其他)'=> 設置圖例(如餅圖圖例:紅色表示中國)
data:[10,20,30,40,50] => 設置數據值個數與labels對應
除了這四個參數之外,還有設這各種顏色的參數,具體根據每個人的審美進行設置的啦。包括線條的大小、顏色,背景顏色等。
3、結合ajax的實戰(zhàn)案例
當一個頁面需要顯示多個圖表,同時每個圖表需要運算的數據有一定量的時候,采用ajax進行異步加載是個比較常用的解決方案。

# controller
def average_coast
  labels = ["微信紅包", "微信運動", "微信公眾號", "微信小應用"]
  data = [65,59,80,81]
  bg_color = ['rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)']
  options = {
        type: "bar",
        data: {
            labels: labels,
            datasets: [
                {
                    label: '成本',
                    data: data,
                    backgroundColor: bg_color,
                    borderWidth: 1
                }
            ]
        }
    }

# show.coffee
window.onload = ->
  $.ajax
    type: "GET"
    url: "average_coast"
    success: (options)->
      new Chart($('#average_coast_chart'), {
        type: options.type,
        data: options.data
      });



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容