忍者ブログ
日々の研究生活のメモ書きなど
twitterで以下の記事に関するツイートを見かけた

■ 参考 : 【xkcd】pythonコードにたった一行で漫画のようなグラフを作る!

そもそも「xkcd」って漫画を知らない・・・

リンク先にあるように、
xkcd()
とpytyonスクリプトの最初に書いてしまうと、あとはmatplotlibがやってくれるらしい
へぇ〜





で、もしかしてこれgnuplotでもできるんじゃない?
と思って「gnuplot xkcd」とかで調べてみたらあったわ・・・

■ 参考 : xkcd-gnuplot

このコードのミソはここで宣言されているjigglea関数jiggle関数
これによってsin(x)とcos(x)に揺らぎを与えて漫画調のぐらぐらした線を再現している

また漫画調のフォントは"Humor Sans"というらしい
ググったら以下のページに落ちていた
■ 参考 : xkcd-desktop/Humor-Sans.ttf

ダウンロードしたttfファイルをダブルクリックすれば、Macなら簡単にインストールできるはず
インストールしたフォントファイルにPATHを通さないとgnuplotでは使えないので注意
PATHの通し方は以下を参考に

■ 過去記事 : 【gnuplot】Could not find/open font...というエラーが出るのでフォントの指定をする


これでこんな感じのグラフが書ける

hoge

コードは以下の通り、
(オリジナルからpng出力に変更しただけ)
set term png font 'Humor Sans'
set output "hoge.png"

# Some line types
set style line 10 lt 1 lc rgbcolor "#ffffff" lw 15 #thick white
set style line 11 lt 1 lc rgbcolor "#000000" lw 4 #black

set style line 1 lt 1 lc rgbcolor "#ff0000" lw 4 #red
set style line 2 lt 1 lc rgbcolor "#0000ff" lw 4 #blue

# No border with tics
set border 0

set noxtics
set noytics

# Show the axis
set xzeroaxis ls 11
set yzeroaxis ls 11

#Arrow end to the axis
set arrow from graph 0.95, first 0 to graph 1, first 0 size 2,3 front
set arrow from first 0, graph 0.95 to first 0, graph 1 size 2,3 front

set yrange [-1.1:1.1]
set xrange [-1:15]

set key bottom

set label 'Wasted time' at 11,0.7 right
set arrow from 11.1,0.7 to 12,((12/15.0)**2) ls 11


set title 'Check this out! XKCD in Gnuplot'

#Jiggling functions
range = 2.0 #Range for the absolute jiggle
jigglea(x) = x+range*(2*(rand(0)-0.5)*0.005) #Absolute (as a fraction of the range)
jiggle(x) = x*(1+(2*rand(0)-0.5)*0.015) #Relative +-1.5% (as a fraction of the y value)

dpsin(x) = sin(x) * exp(-0.1 * (x - 5) ** 2)
dpcos(x) = - cos(x) * exp(-0.1 * (x - 5) ** 2)

plot jiggle(dpsin(x)) ls 10 t '', \
jiggle(dpsin(x)) ls 1 t 'Damped Sin',\
jiggle(dpcos(x)) ls 10 t '', \
jiggle(dpcos(x)) ls 2 t 'Damped Cos',\
jigglea((x/15)**2) ls 10 t '',\
jigglea((x/15)**2) ls 11 t ''











PR
この記事にコメントする
Name
Title
Color
E-Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "生きてます"
print "コロナのせいで15万くらい損失出してますが、生きてます"

# 最終更新 2020/03/15
カウンター
カウンター カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

とある物理の院生日誌~院生は社会へ旅立った~
(研究室の先輩の個人ブログ)

英語例文を見て自然に英語・英会話を学ぶ
(楠本慶ニさんの個人ページ、様々な情報の密度の高さに感動)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]