【rails】데이터를 그래프로 표시
전제
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
보충
그래프의 색등의 표시에 대한 세세한 설정은 어떻게 할까요?
Reference
이 문제에 관하여(【rails】데이터를 그래프로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/igat/items/211c29af0dc06c30667a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)