[RUBY] Zeichnen Sie Diagramme mit Sinatra und Chartkick

Einführung

Ich habe die * Familien-Aufgabenliste*, die beim letzten Mal erstellt wurde, verbessert und versucht, ein Diagramm zu zeichnen.

Abschlussbildschirm

20200828.png

Aufbau

main.rb


require 'sinatra'
require 'sinatra/reloader'
require 'date'
require 'active_record'
require 'rack/csrf'
require 'chartkick'  #hinzufügen

bash.sh


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

Setzen Sie chartkick.js in die Öffentlichkeit

Quelle

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

Ursprünglich sollten Sie "ActiveRecord" gut verwenden, aber Sie können die Daten erhalten, indem Sie "SQL" direkt eingeben.

index.erb


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

Es ist "Edelstein" zu verdanken, dass es wunderschön gezeichnet ist.

Zusammenfassung

Referenzierte Site Create beautiful JavaScript charts with one line of Ruby

Recommended Posts

Zeichnen Sie Diagramme mit Sinatra und Chartkick
Zeichnen Sie mit MPAndroidChart gleichzeitig Balkendiagramm und Liniendiagramm
Erstellen Sie mit Sinatra eine Familien-ToDo-Liste
Erstellen Sie mit Sinatra eine Familien-ToDo-Liste
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Ein einfaches Stein-Papier-Scheren-Spiel mit JavaFX und SceneBuilder
Entwerfen und implementieren Sie ein Block Breaking-Spiel mit einer sauberen Architektur
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 2
Entwerfen und implementieren Sie ein Block Breaking-Spiel mit einer sauberen Architektur
[Ruby] Ich habe einen Crawler mit Anemone und Nokogiri gemacht.
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 1
Erstellen Sie Diagramme mit JFreeChart
Viel Spaß beim Programmieren mit Lambda-Stil und flüssiger Oberfläche
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Installieren Sie Ruby 3.0.0 Preview 1 mit einer Kombination aus Homebrew und rbenv
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser