[RUBY] Dessinez des graphiques avec Sinatra et Chartkick

introduction

J'ai amélioré la * liste de tâches de la famille* créée la dernière fois et j'ai essayé de dessiner un graphique.

Écran de fin

20200828.png

Réglage

main.rb


require 'sinatra'
require 'sinatra/reloader'
require 'date'
require 'active_record'
require 'rack/csrf'
require 'chartkick'  #ajouter à

bash.sh


$ ls public/
chartkick.js  main.js  style.css

Mettre chartkick.js en public

La source

main.rb


get '/' do
  con = ActiveRecord::Base.connection
  dat = con.execute("select users.name, scores.score, scores.point from users inner join scores on users.id = scores.user_id where scores.flag=0 order by users.name, scores.point")
  h = {name: '', data: {}}
  @graph_data = []
  tname = ''
  dat.each do |x|
    if x["name"] == tname
      h[:data][x["point"]] = x["score"]
    else
      tname = x["name"]
      if h[:name] != ''
        @graph_data << h.dup
      end
      h[:name] = x["name"]
      h[:data] = {}
      h[:data][x["point"]] = x["score"]
    end
  end
  @graph_data << h.dup
  erb :index
end

À l'origine, vous devriez bien utiliser ʻActiveRecord, mais vous pouvez obtenir les données en tapant directement SQL`.

index.erb


<%= line_chart @graph_data, min: 40, max: 100 %>

C'est grâce à "gem" qu'il est magnifiquement dessiné.

Résumé

Site référencé Create beautiful JavaScript charts with one line of Ruby

Recommended Posts

Dessinez des graphiques avec Sinatra et Chartkick
Dessinez un graphique à barres et un graphique linéaire en même temps avec MPAndroidChart
Faites une liste de choses à faire en famille avec Sinatra
Faites une liste de choses à faire en famille avec Sinatra
Préparer un environnement de scraping avec Docker et Java
Un simple jeu de ciseaux-papier-pierre avec JavaFX et SceneBuilder
Concevoir et implémenter un jeu de rupture de bloc avec une architecture propre
Faisons un Bot LINE avec Ruby + Sinatra - Partie 2
Concevoir et implémenter un jeu de rupture de bloc avec une architecture propre
[Ruby] J'ai fait un robot avec de l'anémone et du nokogiri.
Faisons un Bot LINE avec Ruby + Sinatra - Partie 1
Créer des graphiques avec JFreeChart
Profitez de la programmation avec un style lambda et une interface fluide
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
Installez Ruby 3.0.0 Preview 1 avec une combinaison de Homebrew et de rbenv
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Représentez graphiquement les informations du capteur de Raspberry Pi en Java et vérifiez-les avec un navigateur Web