Skip to content

Instantly share code, notes, and snippets.

@junpeitsuji
Last active September 2, 2015 19:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save junpeitsuji/78e39a51f0c4a8eee907 to your computer and use it in GitHub Desktop.
Save junpeitsuji/78e39a51f0c4a8eee907 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'gruff'
require 'prime'
# 配列を宣言
primes = Array.new
prev_num = 0
# 素数を生成する上限を決める
1001.times do |i|
x = i * 0.1
n = x.to_i
num = Prime.each(n).count
# 1つ前のデータとの平均をとる
primes.push (num+prev_num)*0.5
prev_num = num
end
# primes を標準出力へ表示
p primes
#=begin
#初期化する(Lineは折れ線グラフ)
#コンストラクタにnew('高さx横幅')の形で渡せばそのサイズになる
g = Gruff::Line.new
#タイトルと日本語フォントの指定
#今回はこのファイルと同じところにフォントファイルを置いたが、絶対パス指定でもおk
g.title = "与えられた数より小さい素数の個数"
g.font = "./ヒラギノ角ゴ Pro W3.otf"
g.line_width = 2
#X軸のラベルサイズ
g.marker_font_size = 14
#Y軸の最大値と最小値を設定
#設定しないと自動
#最大値や最小値だけを設定するとエラーが出る。
g.maximum_value = 30
g.minimum_value = 0
#背景色
#色を2色設定しているので上から下へ青から白にグラデーションがかかる
#g.theme = {:background_colors => %w[blue white]}
#描画するデータ設定(今回は1種類のデータ)
#データの個数分以下の形式で追加していく
#g.data("名前", [データ,データ,・・・], "色")
g.data("π(x)", primes, "#cc6699")
#X軸のラベル
g.labels = {0 => '0',200 => '20',400 => '40',600 => '60',800 => '80',1000 => '100'}
#書き出す
g.write('primes.png')
#=end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment