【rails】데이터를 그래프로 표시

7313 단어 RailsRails5

전제



Rails 5.2.4.2

gem 추가



Gemfile
gem'lazy_high_charts'

terminal
bundle install

javascript 라이브러리로드



app/assets/javascripts/application.js
//= require highcharts/highcharts

컨트롤러에 그래프를 그리는 액션을 기재



app/controllers/application_controller.rb
  def index
    ...
    cities = House.pluck(:city).uniq.sort
    people = House.pluck(:num_of_people).uniq.sort
    max_people = people.max
    min_people = people.min

    @chart2 = LazyHighCharts::HighChart.new("graph") do |c|
      c.title(text: "地域毎の世帯あたりの人数(子供なし世帯)")
      #x軸
      c.xAxis(categories: people, title: {text: 'Number of households' } )
      #y軸
      c.yAxis(title: {text: 'count' } )

      cities.each do |city|
        family_has_nochild = []
        for num in min_people..max_people do
          #グラフ化したいデータを条件指定して抽出し、配列に入れる
          family_has_nochild << House.where(city: city).where(num_of_people: num).where(has_child: "No").count
        end
        #グラフ表示したいデータを配列で渡す
        c.series(name: city, data: family_has_nochild )
      end
      #凡例
      c.legend(align: 'right', verticalAlign: 'top', x: -100, y: 180, layout: 'vertical' )
      #グラフ種別を指定(棒グラフ)
      c.chart(type: "column" )
    end
   ...

보기에서 표시할 그래프 로드



app/views/houses/index.html.haml
.wrapper
  %h1
    = "Houseデータのグラフ"
  .wrapper__guide
    = "インポートしたHouseデータ(csv)のグラフを表示します"

  .wrapper__chart
    .wrapper__chart__first
      # グラフの読み込み
      = high_chart("my_chart2", @chart2)
    .wrapper__chart__second
      # グラフの読み込み
      = high_chart("my_chart3", @chart3)

결과





참고



h tps:// 퀵했다. 작은 m/수문 s/있어 MS/C435b14FB637d 페어 b4 그림 6
htps //w w. s 조 l. ctc-g. 이. jp/코이 mn s/마이 드리ゔぇ/마이 드리ゔぇ20. HTML

보충



그래프의 색등의 표시에 대한 세세한 설정은 어떻게 할까요?

좋은 웹페이지 즐겨찾기