[Rails]C3.js × goo에 도표 보이기
12215 단어 gonc3.jsJavaScriptRubyRails
그런 너에게추천
또한 데이터베이스나 컨트롤러에 있는 데이터를 표시하려면gem
gon
을 사용하면 편리하다.이번에는 C3입니다.다음은 js와gon을 사용하여 기둥그림을 그리는 방법을 소개합니다.
컨디션
릴리즈
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]
$ rails -v
Rails 5.2.3
gem 가져오기
gon
.gem 'gon'
gem 'haml-rails'
보기는haml을 채택했다.라이브러리 및 gon 불러오기
C3.js는 D3입니다.js의 나팔통이기 때문에 C3입니다.js와 함께 D3.js를 읽습니다.
이번에는 CDN으로 읽기로 했습니다.(물론,gem로도 읽을 수 있습니다.Rails C3에 있습니다.js 사용
또한 gon을 적용하기 위해 헤드 탭에는 다음과 같은 내용이 추가됩니다.
application.html.haml
# jsファイルよりも前に読み込む
= Gon::Base.render_data
%link{ href: "https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.7/c3.css", rel: "stylesheet"}
%script{src: "https://d3js.org/d3.v4.min.js", type: "text/javascript"}
%script{src: "https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.7/c3.js", type: "text/javascript"}
뷰
차트를 삽입할 요소에 ID를 지정합니다.
html.haml
.container
#bar
/ ここにチャートを挿入
컨트롤러
값을
gon.◯◯
변수에 대입하면 js 파일에서 호출할 수 있습니다.controller.rb
gon.x = ["x","07/13","07/14","07/15","07/16","07/17","07/18","07/19"]
gon.cash = ["現金",2000000,1000000,1000000,1000000,1000000,1000000,1000000]
gon.crypto = ["仮想通貨",8000000,9000000,10000000,8000000,6000000,4000000,2000000]
이해하기 편리하도록 직접 수치를 대입하였다컨트롤러로 DB의 정보를 얻고 변수를 js에 건네주고 싶을 때 사용하면 편리합니다.
파일 형식
마찬가지로
gon.◯◯
컨트롤러가 정의한 변수를 꺼낼 수 있습니다.window.onload = function() {
// 棒グラフを挿入
var barGraph = c3.generate({
bindto: '#bar', // 挿入する要素のIDを指定(デフォルトは#chart)
data: {
x : 'x',
columns: [
// コントローラーで定義した変数の呼び出し
gon.x, //x軸のメモリに表示する文字列
gon.cash, // 値1
gon.crypto, // 値2
],
groups: [
// 値1と値2を連結させた棒グラフを表示
['現金', '仮想通貨']
],
type: 'bar' // チャートタイプを指定(今回は棒グラフ)
},
axis: {
x: {
type: 'category' // x軸のメモリ(今回は日付)を読み込むために必要
},
y: {
label: {
// y軸のラベルを追加
text: '価格 / 円',
position: 'outer-middle'
},
tick: {
// 3桁ずつ「,」を挿入
format: d3.format(",")
}
}
},
// チャートの余白を指定できる
padding: {
top: 10,
bottom: 0
}
});
}
지정 가능한 도표 유형이나 다른 설정은 공식 참고를 이해하기 쉽다.C3.js gon의 구조
application.html.햄의 헤드 탭
Gon::Base.render_data
에 기술된 부분이 어떻게 표시되는지 확인하세요.html
<script>
//<![CDATA[
window.gon={};
gon.x=["x","07/13","07/14","07/15","07/16","07/17","07/18","07/19"];
gon.cash=["現金",2000000,1000000,1000000,1000000,1000000,1000000,1000000];
gon.crypto=["仮想通貨",8000000,9000000,10000000,8000000,6000000,4000000,2000000];
//]]>
</script>
window.gon={}
는 전역 변수gon
를 정의하여 빈 대상을 대입하고 초기화합니다.(글로벌 변수는 창 객체 속성)그리고 컨트롤러가 지정한 값을
gon
속성으로 대입합니다. (window를 생략할 수 있습니다.)이렇게 하면 js 파일에서 변수를 읽을 수 있습니다.
참고 자료
C3.js
gon
Rails C3에 있습니다.js 사용
Reference
이 문제에 관하여([Rails]C3.js × goo에 도표 보이기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akkie/items/cbcdf44b19b7db067694텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)