SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
   で
きれいな図を書こう
@y_system
2014年6月8日
KETpic v4.2.2 ltd コマンド一
for R
いての注意
込みには次を実行する.
/work/ketpic.Rdata”)  (C:/work/は作業フォルダ名)
ィレクトリの変更は setwd(”c:/work”)
(1, 2)
f(x) = 2x(0 < x < 1)
1 x
f(x)
O
このスライドは
統計解析ソフトR で     を使って,TEXの作図を
美しくしようというもの
どんなに頑張ってもRのplotでは限界がある!
Rではexpression関数で数式表現はサポートされてま
すが…見た目は美しくない…
2
2
KETpic v4.2.2 ltd コマンド一覧
for R
PD
1 R についての注意
1. KETpic の読込みには次を実行する.
load(”C:/work/ketpic.Rdata”)  (C:/work/は作業フォルダ名)
※ ディレクトリの変更は setwd(”c:/work”)
2. 文字列は  ”(ダブル)で囲む
※ 文字列の中に文字列を入れるときは ’ と ” を入れ子に使う.
3. 関数などを引数とするときは,文字列とする.
例)G<- Plotdata( ”x^2”, ”x=c(0,1)”)
4. (バックスラッシュ)を出力するには2つ並べてかく.
5. 注釈は #
6. 数と文字列の変換
as.character(数)
f(x)=x
2
about:
教科書のようなきれいな図をTEXに
図の中の記号や数式も本文と同じ見た目
図をわかりやすく!
3
KETpic v4.2.2 ltd コマン
for R
R についての注意
KETpic の読込みには次を実行する.
load(”C:/work/ketpic.Rdata”)  (C:/work/は作業フォルダ名)
※ ディレクトリの変更は setwd(”c:/work”)
文字列は  ”(ダブル)で囲む
※ 文字列の中に文字列を入れるときは ’
(1, 2)
f(x) = 2x(0 < x < 1)
1 x
f(x)
O
about:
TEXには数値計算の十分な機能はないので解析ソフト
などで計算を行う
Rの上でKETpic関数を利用してTEX用の作図を得ると
いうもの
4
KETpic v4.2.2 ltd コマン
for R
R についての注意
KETpic の読込みには次を実行する.
load(”C:/work/ketpic.Rdata”)  (C:/work/は作業フォルダ名)
※ ディレクトリの変更は setwd(”c:/work”)
文字列は  ”(ダブル)で囲む
※ 文字列の中に文字列を入れるときは ’
R TeX
図ファイル
.texの作成
KETpic
関数
KETpic
スタイルファイル
(1, 2)
f(x) = 2x(0 < x < 1)
1 x
f(x)
O
1 f(x) = 2x(0 < x < 1)
f(x) = x2
(0 < x < 1)
f(x)
準備
TeXとRは既にインストールしてあると思うので,
必要なのは,
• Rの関数が定義されたファイル
• TeXのスタイルファイル
このファイルがないと始まらない!
5
まず,公式サイトに行きましょう
まず http://ketpic.com/ にアクセスし,
ダウンロードをクリック
6
RのファイルのDownload
Rを選択
7
RのファイルのDownload
ketpicR_4_3_1_ltd01.zip (現バージョン)
をダウンロード.
8
TeXのスタイルファイルのDownload
1つ前に戻ってtexmacroをクリック
9
TeXのスタイルファイルのDownload
ketpicsty131009.zip
    と
ketslide100920F.zip
をダウンロード
10
それぞれ解凍しましょう
さきほどダウンロードしたファイルをダブルクリック
などで解凍してあげましょう
11
解凍したら…
こんなファイル構成にしましょう.
今回はstyのインストールはしません.
12
どこかのフォルダ
あなたのtexファイル
ketpic.sty
ketpicフォルダ
ketpic_ltd.Rdata
作成した図ファイル
作図データをつくろう
ketpic_ltd.Rdata をダブルクリックしてRを
起動します.
(既に起動済みの方はDrag&Dropなどで)
13
作図データをつくろう
このコードをRで実行してみよう
14
Ketinit()
Setwindow(c(-0.5,1.5),c(-0.5,2.5))
G=Plotdata('2*x','x=c(0,1)')
Gv=Listplot(c(1,0),c(1,2))
SEG1=Listplot(c(0,0),c(1,0),c(1,2))
Windisp(G)
Openfile("2x.tex")
Beginpicture('20mm')
Drwline(G,2)
Drwline(Gv,0.5)
Setax("a0.5","x","s2","f(x)","w","O","nw")
Expr(c(1,2),"w","(1,2)")
Expr(c(1.3,2.4),"e","f(x)=2x (0<x<1)")
Expr(c(1,0),"es2","1")
GH=Hatchdata(list('ii'),list(SEG1,'n'),list(G,'s'),-45,0.5)
Drwline(GH,0.5)
Endpicture(1)
Closefile()
作図データをつくろう
このコードをRで実行してみよう
Ketinit()
Setwindow(c(-0.5,1.5),c(-0.5,2.5))
G=Plotdata('2*x','x=c(0,1)')
Gv=Listplot(c(1,0),c(1,2))
SEG1=Listplot(c(0,0),c(1,0),c(1,2))
Windisp(G)
Openfile("2x.tex")
Beginpicture('20mm')
Drwline(G,2)
Drwline(Gv,0.5)
Setax("a0.5","x","s2","f(x)","w","O","nw")
Expr(c(1,2),"w","(1,2)")
Expr(c(1.3,2.4),"e","f(x)=2x (0<x<1)")
Expr(c(1,0),"es2","1")
GH=Hatchdata(list('ii'),list(SEG1,'n'),list(G,'s'),-45,0.5)
Drwline(GH,0.5)
Endpicture(1)
Closefile()
15
データの
作成
作図TeX
書き出し
細かいコードの説明は後で
TeX に図を挿入しよう
先ほど「2x.tex」が作成されたと思うので,
本文となるtexファイルをketpic.styと同じフォルダに
つくりましょう.
16
TeX のソース
ketpic と graphicx は必須!
figure 環境の中にinputコマンドで先ほどの作図を入
れる.
17
documentclass[12pt]{jsarticle}
usepackage{ketpic}
usepackage{graphicx}
usepackage{float}
begin{document}
begin{figure}[H]
centering
input{ketpic/2x.tex}
caption{$f(x)=2x (0<x<1)$のグラフ}
end{figure}
end{document}
コンパイル
こんなPDFが出力されたと思います!
!
!
!
!
!
!
!
次のページで解説
18
(1, 2)
f(x) = 2x(0 < x < 1)
1 x
f(x)
O
図 1 f(x) = 2x(0 < x < 1) のグラフ
1
コードの解説
Ketinit()
Setwindow(c(-0.5,1.5),c(-0.5,2.5))
G=Plotdata('2*x','x=c(0,1)')
Gv=Listplot(c(1,0),c(1,2))
SEG1=Listplot(c(0,0),c(1,0),c(1,2))
Windisp(G)
Openfile("2x.tex")
Beginpicture('20mm')
Drwline(G,2)
Drwline(Gv,0.5)
Setax("a0.5","x","s2","f(x)","w","O","nw")
Expr(c(1,2),"w","(1,2)")
Expr(c(1.3,2.4),"e","f(x)=2x (0<x<1)")
Expr(c(1,0),"es2","1")
GH=Hatchdata(list('ii'),list(SEG1,'n'),list(G,'s'),-45,0.5)
Drwline(GH,0.5)
Endpicture(1)
Closefile()
19
データの
作成
作図TeX
書き出し
Code for generating values
20
#	 領域の初期化

Ketinit()
#	 作図領域の指定

Setwindow(c(-0.5,1.5),c(-0.5,2.5))
#	 関数系のデータ作成

G=Plotdata(‘2*x','x=c(0,1)')
#	 線分データの作成

Gv=Listplot(c(1,0),c(1,2))
#	 線分データの作成(頂点3つ以上で領域の作成)

SEG1=Listplot(c(0,0),c(1,0),c(1,2))
データの
作成
ここまでがデータ座標データなどの準備
Code for extracting the TeX source
21
#	 書き出すファイルの指定

Openfile(“2x.tex")
#	 拡大率の設定(図の1が何mmなのか)

Beginpicture(‘20mm')
#	 先ほど設定した線の書き出し

Drwline(G,2) #	 y=2x
Drwline(Gv,0.5) #	 線分

#	 軸関連の設定

#	 Setax(軸の形状,横軸名,横軸名の位置,縦軸名,縦軸名の位置,

#	 	 	 	 	 	 	 原点名,原点の位置)

#	 a0.5	 とすると線幅を指定できる

Setax(“a0.5”,"x","s2","f(x)","w","O","nw")
#	 座標に文字を書き入れる

#	 Expr(座標,	 東西南北,	 TeXの数式表現)

Expr(c(1,2),"w","(1,2)")
Expr(c(1.3,2.4),"e","f(x)=2x (0<x<1)")
Expr(c(1,0),”es2","1") # es2とすると右下の下
作図TeX
書き出し
続く
1/2
Code for extracting the TeX source
22
#	 領域の図示

#	 Hatchdata(	 領域の内外,領域の指定:閉曲線や曲線の上下の指定,

#	 	 	 	 	 	 	 	 	 	 	 	 	 	 斜線の向き,線幅	 )

GH=Hatchdata(list(‘ii'),list(SEG1,'n'),list(G,'s'),-45,0.5)
#	 描画

Drwline(GH,0.5)
#	 作図終了の宣言

#	 1で座標軸を書く,0で書かずに終了.

Endpicture(1)
#	 Rでのファイル書き出しの終了の宣言.

Closefile()
作図TeX
書き出し
2/2
他にも色々できます
ketpicR_4_3_1_ltd01.zip の中の referenceR4_3_1_ltd.pdf
に様々な関数の説明が書いてあります.
23
2014 年 1 月 2 日
KETpic v4.3.1 ltd コマンド一覧
for R
PD プロットデータ
1 R についての注意
1. KETpic の読込みには次を実行する.
load(”C:/work/ketpic.Rdata”)  (C:/work/は作業フォルダ名)
※ ディレクトリの変更は setwd(”c:/work”)
2. 文字列は  ”(ダブル)で囲む
※ 文字列の中に文字列を入れるときは ’ と ” を入れ子に使う.
3. 関数などを引数とするときは,文字列とする.
例)G<- Plotdata( ”x^2”, ”x=c(0,1)”)
4. (バックスラッシュ)を出力するには2つ並べてかく.
5. 注釈は #
6. 数と文字列の変換
as.character(数)
as.numeric(文字列)
eval(parse(text=文字列)))
sprintf(書式, 数) 書式付き文字列
7. 異なる型のデータからリストを作るには list を用いる.
作成    L<- list(... , ... );
取り出し  A<- L[[i]]
部分リスト  L[V] (V はベクトル)
置き換え  L[[i]]<- ...
長さ    length(L)
作成例
三乗根
Ketinit()
Setwindow(c(-1.5,1.5),c(-1.5,1.5))
x=seq(0,2*pi,.01)
G=matrix(c(cos(x),sin(x)),length(x),2)
!
Windisp(G)
Openfile("omega.tex")
Beginpicture('2cm')
Dashline(G,1)
!
Setax("a0.7","rm Re","s0.7","rm Im","w","O","sw")
Expr(c(1,0),"es2","1")
Expr(c(cos(2*pi/3),sin(2*pi/3)),"wn","-displaystylefrac{1}{2}+frac{sqrt{3}}{2}i")
Expr(c(cos(4*pi/3),sin(4*pi/3)),"ws","-displaystylefrac{1}{2}-frac{sqrt{3}}{2}i")
Drwxy()
Setpt(5)
Drwpt(c(1,0),1)
Drwpt(c(cos(2*pi/3),sin(2*pi/3)),1)
Drwpt(c(cos(4*pi/3),sin(4*pi/3)),1)
Endpicture(0)
Closefile()
1
−
1
2
+
√
3
2
i
−
1
2
−
√
3
2
i
Re
Im
O
1
Bibliography
CASTEX応用研究会(2011), 『KETpicで楽々TEX
グラフ』, イーテキスト研究所.
Y. Maeda & M. Kaneko (2013). “Making math
textbooks and materials with TEX+KETpic
+hyperlink”, The 34th Annual Meeting of the TeX
Users Group.
26
[1]
[2]

Weitere ähnliche Inhalte

Was ist angesagt?

研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11Kenta Hattori
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話Moriyoshi Koizumi
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4Tomohiro Namba
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPUgos-k
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LTKohei KaiGai
 
Java電卓勉強会資料
Java電卓勉強会資料Java電卓勉強会資料
Java電卓勉強会資料Toshio Ehara
 
データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
Java初心者勉強会(2015/08/07)資料
Java初心者勉強会(2015/08/07)資料Java初心者勉強会(2015/08/07)資料
Java初心者勉強会(2015/08/07)資料Toshio Ehara
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelereaseShiqiao Du
 
Nds meetup8 lt
Nds meetup8 ltNds meetup8 lt
Nds meetup8 ltushiboy
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理wada, kazumi
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with HaskelKen Ogura
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成眞樹 冨澤
 

Was ist angesagt? (20)

Rの高速化
Rの高速化Rの高速化
Rの高速化
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
 
R高速化
R高速化R高速化
R高速化
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
Java電卓勉強会資料
Java電卓勉強会資料Java電卓勉強会資料
Java電卓勉強会資料
 
データとは何か
データとは何かデータとは何か
データとは何か
 
Java初心者勉強会(2015/08/07)資料
Java初心者勉強会(2015/08/07)資料Java初心者勉強会(2015/08/07)資料
Java初心者勉強会(2015/08/07)資料
 
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
 
前期講座09
前期講座09前期講座09
前期講座09
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
 
Nds meetup8 lt
Nds meetup8 ltNds meetup8 lt
Nds meetup8 lt
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with Haskel
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成
 

Ähnlich wie KETpic できれいな図を書こう

今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)YoheiOkuyama
 
diffの真髄
diffの真髄diffの真髄
diffの真髄fuku68
 
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)NTT DATA OSS Professional Services
 
201209 Biopackathon 12th
201209 Biopackathon 12th201209 Biopackathon 12th
201209 Biopackathon 12thSatoshi Kume
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチMasami Ichikawa
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編wada, kazumi
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門Takashi Kitano
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8y_taka_23
 

Ähnlich wie KETpic できれいな図を書こう (20)

今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
Rでreproducible research
Rでreproducible researchRでreproducible research
Rでreproducible research
 
diffの真髄
diffの真髄diffの真髄
diffの真髄
 
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
 
201209 Biopackathon 12th
201209 Biopackathon 12th201209 Biopackathon 12th
201209 Biopackathon 12th
 
R intro
R introR intro
R intro
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチ
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
 
Gnuplotあれこれ
GnuplotあれこれGnuplotあれこれ
Gnuplotあれこれ
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 

KETpic できれいな図を書こう