ketpic できれいな図を書こう

26
きれいな図を書こう @y_system 2014年6月8日 K E Tpic (1, 2) f (x)=2x(0 <x< 1) 1 x f (x) O

Upload: yoshitomo-akimoto

Post on 21-Jul-2015

810 views

Category:

Design


0 download

TRANSCRIPT

   で

きれいな図を書こう@y_system

2014年6月8日

2013年 10月 6日

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(数)as.numeric(文字列)eval(parse(text=文字列)))sprintf(書式, 数) 書式付き文字列

7. 異なる型のデータからリストを作るには listを用いる.作成    L<- list(... , ... );取り出し  A<- L[[i]]部分リスト  L[V] (V はベクトル)置き換え  L[[i]]<- ...長さ    length(L)追加    L<- c(L1, L2)結合    c(L1,L2,...)空リスト  list()タイプを見る  is.list(L)(論理値)または mode(L)

2 Rのための追加コマンドMember(D, L) Dが Lの要素であれば true,そうでなければ falseを返す.

※ Lはベクトルまたは listFlattenlist(L) Lを平準化して単層のリストを作るMixdisp(list) listの要素を画面に簡易表示Op(N, Data) Dataの N番目の要素(Dataは文字列,ベクトル,list)Assign(式, 変数名, 値, ・・・)

変数名(文字列)に値を割り当てた文字列を返す※ 値は,数,文字列,数行列,Scilablist例) A<- 0.4; B<- c(2,1)  Fn<- Assign(”A*xˆ2+B(1)*yˆ2”,”A”, A, ”B”, B)

1

(1, 2)

f(x) = 2x(0 < x < 1)

1 x

f(x)

O

ਤ 1 f(x) = 2x(0 < x < 1)ͷάϥϑ

(1, 1)

f(x) = x2(0 < x < 1)

1 x

f(x)

O

ਤ 2 f(x) = x2(0 < x < 1)ͷάϥϑ

1

このスライドは統計解析ソフトR で     を使って,TEXの作図を

美しくしようというもの

どんなに頑張ってもRのplotでは限界がある!

Rではexpression関数で数式表現はサポートされてま

すが…見た目は美しくない…

2

2013年 10月 6日

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(数)as.numeric(文字列)eval(parse(text=文字列)))sprintf(書式, 数) 書式付き文字列

7. 異なる型のデータからリストを作るには listを用いる.作成    L<- list(... , ... );取り出し  A<- L[[i]]部分リスト  L[V] (V はベクトル)置き換え  L[[i]]<- ...長さ    length(L)追加    L<- c(L1, L2)結合    c(L1,L2,...)空リスト  list()タイプを見る  is.list(L)(論理値)または mode(L)

2 Rのための追加コマンドMember(D, L) Dが Lの要素であれば true,そうでなければ falseを返す.

※ Lはベクトルまたは listFlattenlist(L) Lを平準化して単層のリストを作るMixdisp(list) listの要素を画面に簡易表示Op(N, Data) Dataの N番目の要素(Dataは文字列,ベクトル,list)Assign(式, 変数名, 値, ・・・)

変数名(文字列)に値を割り当てた文字列を返す※ 値は,数,文字列,数行列,Scilablist例) A<- 0.4; B<- c(2,1)  Fn<- Assign(”A*xˆ2+B(1)*yˆ2”,”A”, A, ”B”, B)

1

f(x)=x2

about:教科書のようなきれいな図をTEXに

図の中の記号や数式も本文と同じ見た目

図をわかりやすく!

3

2013年 10月 6日

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(数)as.numeric(文字列)eval(parse(text=文字列)))sprintf(書式, 数) 書式付き文字列

7. 異なる型のデータからリストを作るには listを用いる.作成    L<- list(... , ... );取り出し  A<- L[[i]]部分リスト  L[V] (V はベクトル)置き換え  L[[i]]<- ...長さ    length(L)追加    L<- c(L1, L2)結合    c(L1,L2,...)空リスト  list()タイプを見る  is.list(L)(論理値)または mode(L)

2 Rのための追加コマンドMember(D, L) Dが Lの要素であれば true,そうでなければ falseを返す.

※ Lはベクトルまたは listFlattenlist(L) Lを平準化して単層のリストを作るMixdisp(list) listの要素を画面に簡易表示Op(N, Data) Dataの N番目の要素(Dataは文字列,ベクトル,list)Assign(式, 変数名, 値, ・・・)

変数名(文字列)に値を割り当てた文字列を返す※ 値は,数,文字列,数行列,Scilablist例) A<- 0.4; B<- c(2,1)  Fn<- Assign(”A*xˆ2+B(1)*yˆ2”,”A”, A, ”B”, B)

1

(1, 2)

f(x) = 2x(0 < x < 1)

1 x

f(x)

O

ਤ 1 f(x) = 2x(0 < x < 1)ͷάϥϑ

(1, 1)

f(x) = x2(0 < x < 1)

1 x

f(x)

O

ਤ 2 f(x) = x2(0 < x < 1)ͷάϥϑ

1

about:TEXには数値計算の十分な機能はないので解析ソフト

などで計算を行う

Rの上でKETpic関数を利用してTEX用の作図を得ると

いうもの

4

2013年 10月 6日

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(数)as.numeric(文字列)eval(parse(text=文字列)))sprintf(書式, 数) 書式付き文字列

7. 異なる型のデータからリストを作るには listを用いる.作成    L<- list(... , ... );取り出し  A<- L[[i]]部分リスト  L[V] (V はベクトル)置き換え  L[[i]]<- ...長さ    length(L)追加    L<- c(L1, L2)結合    c(L1,L2,...)空リスト  list()タイプを見る  is.list(L)(論理値)または mode(L)

2 Rのための追加コマンドMember(D, L) Dが Lの要素であれば true,そうでなければ falseを返す.

※ Lはベクトルまたは listFlattenlist(L) Lを平準化して単層のリストを作るMixdisp(list) listの要素を画面に簡易表示Op(N, Data) Dataの N番目の要素(Dataは文字列,ベクトル,list)Assign(式, 変数名, 値, ・・・)

変数名(文字列)に値を割り当てた文字列を返す※ 値は,数,文字列,数行列,Scilablist例) A<- 0.4; B<- c(2,1)  Fn<- Assign(”A*xˆ2+B(1)*yˆ2”,”A”, A, ”B”, B)

1

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)ͷάϥϑ

(1, 1)

f(x) = x2(0 < x < 1)

1 x

f(x)

O

ਤ 2 f(x) = x2(0 < x < 1)ͷάϥϑ

1

準備TeXとRは既にインストールしてあると思うので,

必要なのは, • Rの関数が定義されたファイル • TeXのスタイルファイル

このファイルがないと始まらない!

5

まず,公式サイトに行きましょうまず http://ketpic.com/ にアクセスし,

ダウンロードをクリック

6

RのファイルのDownloadRを選択

7

RのファイルのDownloadketpicR_4_3_1_ltd01.zip (現バージョン)

をダウンロード.

8

TeXのスタイルファイルのDownload1つ前に戻ってtexmacroをクリック

9

TeXのスタイルファイルのDownloadketpicsty131009.zip     と ketslide100920F.zip

をダウンロード

10

それぞれ解凍しましょうさきほどダウンロードしたファイルをダブルクリック

などで解凍してあげましょう

11

解凍したら…こんなファイル構成にしましょう.

今回はstyのインストールはしません.

12

どこかのフォルダ

あなたのtexファイルketpic.styketpicフォルダ

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)追加    L<- c(L1, L2)結合    c(L1,L2,...)空リスト  list()タイプを見る  is.list(L)(論理値)または mode(L)

2 Rのための追加コマンドMember(D, L) Dが Lの要素であれば true,そうでなければ falseを返す.

※ Lはベクトルまたは listFlattenlist(L) Lを平準化して単層のリストを作るMixdisp(list) listの要素を画面に簡易表示Op(N, Data) Dataの N番目の要素(Dataは文字列,ベクトル,list)Assign(式, 変数名, 値, ・・・)

変数名(文字列)に値を割り当てた文字列を返す※ 値は,数,文字列,数行列,Scilablist例) A<- 0.4; B<- c(2,1)  Fn<- Assign(”A*xˆ2+B(1)*yˆ2”,”A”, A, ”B”, B)

1

作成例

三乗根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","-\\displaystyle\\frac{1}{2}+\\frac{\\sqrt{3}}{2}i") Expr(c(cos(4*pi/3),sin(4*pi/3)),"ws","-\\displaystyle\\frac{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

2i

−1

2−

√3

2i

Re

Im

O

ਤ 1 ඒਤ

1

BibliographyCASTEX応用研究会(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]