投稿

2018の投稿を表示しています

gnuplotでplotコマンドにグラフ範囲を指定して設定する方法

イメージ
gnuplotでグラフのx、y軸の範囲を設定するときは基本的にはxrange、yrangeを設定するので以下のようになります。 gnuplot> set xrange [-pi:pi] gnuplot> set yrange [-5:20] そして、この指定方法以外にplotコマンドの中で範囲を設定することも出来ます。 今回はこちらのplotコマンド内で指定する方法を説明していきます。 plotコマンド内で範囲設定する場合の書式 この方法の書式は簡単には以下のようになります。 gnuplot> plot [-5:5] x**2 gnuplot> plot [-pi:pi] [-5:5] sin(x) 要はplotの後ろに[]で範囲を指定するという書き方です。範囲の並びは基本的にはx軸、y軸となり、その後ろに第二軸やz軸(splotの場合)などが来ます。このへんはどのようなプロットをするかにより違うようです。 y軸のみ指定する方法 範囲を指定する書式がx軸、y軸という順番ですが、ではy軸だけ範囲を設定したい場合はどうすればいいでしょう? こういうときは以下のようにx軸の位置に空の[]を置けばいいです。 gnuplot> plot [] [-100:1000] x**3 空にした場合はオートスケール、もしくはxrange、yrangeで設定していればその値が用いられます。 最小値、最大値のみ指定する方法 範囲の最小値、最大値のみを指定するとき以下のように指定することが出来ます。 gnuplot> plot [-10:] x gnuplot> plot [:30] cos(x) set xrange, set yrangeの設定はどうなるか? set xrangeやset yrangeでも範囲を設定していても、plotコマンド内で範囲指定するとプロットにはこちらの設定が適用されます。ただしxrange、yrangeの設定はそのままなので、plotコマンド内の設定を削除してプロットするとxrange、yrangeで設定した範囲が適用されます。上述しましたが、省略した範囲指定の書き方をするとxrange、yrangeで設定してある範囲が適用されます。 その他、gn

空模様(2018年12月16日〜12月22日)を映したタイムラプス動画

イメージ
2018年12月16日〜12月22日の空模様を映したタイムラプス動画をYoutubeにアップロードしています。 天気としては全体的に晴れが多かったです。午前中によく霧が出るようになりました。 (22日にカメラのアングルを微調整したので、以後やや撮影範囲が変わります) アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 12月16日 日曜日 晴れ時々曇り 12月17日 月曜日 おおむね晴れ 12月18日 火曜日 おおむね晴れ 12月19日 水曜日 晴れのち曇り 12月20日 木曜日 晴れ時々曇り 12月21日 金曜日 曇りのち晴れ(霧多い) 12月22日 土曜日 曇り時々晴れ

gnuplotでデータファイルをプロットするときの列の指定について(using)

gnuplotでデータファイルのデータをグラフとしてプロットするとき gnuplot> plot 'test01.dat' using 1:2 のように「using」を用いてプロットに用いる列を指定します。 指定方法としては上のような列番号を指定する以外に、いくつかの指定方法があります。 指定方法は大まかに分類すると以下のようになっています。 列番号で指定 : using 1:2 列ラベル(1行目)で指定 : using "first":"second" 同上 : using (column("first")):(column("second")) 1列目を擬似的な列として指定 : using 0:1 0:1の省略した書き方 : using 1 固定した数値を指定 : using 1:(5) 列に対して演算する場合 : using ($1):($2) 演算したものを列に割り当てる指定 : using 1:($2+$3+$4) 条件演算子を用いた指定 : using 1:($2<5 ? $2 : 0) データファイルを読み込むときの書式フォーマット指定 : using 1:2 '%lf,%lf' 以下、ピックアップして解説していくことにします。 列番号で指定 : using 1:2 列番号での指定ですが、番号は1から始まる値で指定していきます。 (後述しますが0は別の意味を持ちます) 列番号の指定はシンプルなのであまり困ることはないと思いますが、データファイルの列区切りがスペース以外(カンマなど)だとちゃんと指定してもうまく認識されないことはあるでしょう。gnuplotではスペース区切りを基本としているので、それ以外のデータファイルでは設定を行ってからプロットして下さい。 以下、区切りについて簡単に解説したブログ記事です。 [ソフト] gnuplotでcsvファイルをプロットするときの注意点 列ラベル(1行目)で指定 : using "first":"second" データファイルの一行目に列ラベルがある場合、それを指定することでプロットすることも出来ます。例

地球を一周するときにどこの部分を回るかで一周の長さはどう違ってくるか

イメージ
今回のブログは数学と地理の雑学話。 地球の一周は約4万kmとは言われています。この数値は赤道に沿って一周した場合の長さのようですが、まぁ大雑把に見ればどこを回っても同じような長さでしょう(たぶん)。 で、ふと考えたのですが、例えば南極点から1m離れた場所をスタートしてそのまま南極点の周りを一周すれば約6.3m歩くだけで一周出来るのではないかと。別に南極点で無くとも、適当にある点を定めてそこを中心として一周すればどこでも同じ話になるでしょう。 「一周」をどう定義して扱うかになると思いますが、考えてみると結構おもしろいものです。 そこで話を終わらせるのもなんなので、もう少し考えていくことにします。 一周の最も長い場所が約4万kmとして、そこから離れた場所で一周するときの距離はどう計算すればいいかを考えることにします。 離れた場所の位置をどう表すかによるでしょうけど、ここでは緯度を使ってみることにします。緯度は赤道が0°で北極が北緯90°ですが、実際の地球の話にすると結構込み入った話になって取り扱い難いので簡単に球として考えることにします。 一周のイメージ図としては以下の通り。赤道を回るのがピンクの線で、任意の位置の赤道と平行になるような一周を赤で表しています。 円として見やすいよう上から見たときのイメージ図を描くと以下の通り。 さて、緯度が与えられているので、これを利用して赤い線の円の長さを計算することにします。 再び3Dの球体モデルに戻って考えると、図としては以下のようになります。 図より任意の一周の半径はxなので、xは三角関数を利用してcosθ*rで計算出来ます。rは球の半径なので4万km/(2*3.14)で求められます。半径が求まれば後は 2x * 3.14で一周の長さが計算出来ます。 実際の地点で計算してみます。東京は北緯35.7°あたりなので、ここから赤道と平行に一周回ると 2πr = cos(35.7)*40000/(2*3.14)*2*3.14≒32500 と約3万2500km。赤道周るよりも約7500km短くなるようですね。球をモデルで計算してるので、これが実際の長さになるわけではないですが、まぁ計算するとすればこんな感じ。

空模様(2018年12月9日〜12月15日)を映したタイムラプス動画

イメージ
2018年12月9日〜12月15日の空模様を映したタイムラプス動画をYoutubeにアップロードしています。 今年の冬も雪が降るようになってきました。14日、15日はやや本格的な雪となりました。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 12月9日 日曜日 曇り時々晴れ 12月10日 月曜日 おおむね晴れ 12月11日 火曜日 曇り時々晴れ 12月12日 水曜日 曇り時々雨 12月13日 木曜日 おおむね晴れ 12月14日 金曜日 晴れ時々雪 12月15日 土曜日 雪のち晴れ

Emacsで文章中にあるURLをブラウザで開く方法(goto-address-mode)

イメージ
URLの文字列 テキストファイルの文章中に https://yutarine.blogspot.com/ のようなURLが書かれているとします。 これはURLに見えますが実際には単なる文字列に過ぎないので、マウスでクリックしようがリンクとしては機能しません(テキストエディタやビューアー側がURLをリンクとして機能させられるのは別として)。 URL先を見たい場合は、その文字列をコピー、そしてWebブラウザのアドレスバーに貼り付けて移動する必要があります。 まぁテキストファイルとはそういうものだと言えばそれまでですが、それでもURLが書かれていたらマウスでクリックすればWebブラウザで開いてくれれば便利でしょう。今回はEmacsでgoto-address-modeを使うことでそれを可能にする方法を紹介していきます。 Emacsの場合 Emacsでも単なるテキストファイルを開いた場合はURLが書かれていようが、やはり文字列としての扱いとなります。 goto-address-modeを使う Emacsにはテキストファイル(というかbuffer)内にあるURLを認識して、リンクとして機能出来る「goto-address-mode」があります。これはMinor-modeなので、Major-modeや他のMinor-modeと同時に使用出来ます。 使い方 このモードを有効にするには M-x goto-address-mode とします。するとbuffer内のURLがリンクとして機能します。 下のモードを有効にする前と後のスクリーンショットを載せておきます。 有効前   有効後 スクリーンショットを見て分かるように、URLにはちゃんとhttp://などを付けていないと認識されないようです。 そしてリンクをWebブラウザで開く場合は、マウスでクリックするか、URL文字列にカーソルを合わせて「C-c Enter」としてやります。 リンクを開くときはデフォルトではOS(もしくはシステム)側の標準に設定してあるWebブラウザで開かれるようです。Emacs側に設定するなら、どう開くかもカスタマイズ出来ると思います(たぶん😥)。 その他 Org-modeを使っている場合でもURLはリンクと機能しますが、どうもそれはgoto-address-mode

空模様(2018年12月2日〜12月8日)を映したタイムラプス動画

イメージ
2018年12月2日〜12月8日の空模様を映したタイムラプス動画をYoutubeにアップロードしています。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 12月2日 日曜日 おおむね晴れ 12月3日 月曜日 曇りのち晴れ 12月4日 火曜日 晴れのち雨 12月5日 水曜日 おおむね曇り 12月6日 木曜日 曇り時々雨 12月7日 金曜日 曇り時々晴れ(霧多い) 12月8日 土曜日 曇り時々晴れ

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

イメージ
Pythonで「1桁の16進数でも2桁で出力するという方法」がいまいち分からずに手間取ったことがあるので、そのとき取った方法をまとめておきます。 以前のgnuplot関連のブログ gnuplotのRGB値による色指定について で、プロット例のグラフを出力するために、「RRGGBB」となるRGB値を作成する必要がありました。 要は「0xff0000」となる数値を必要な分だけ書き出すわけです。 gnuplotでプロットするときは以下のような命令となっています。 gnuplot>>> plot cos(x)+0.0 lc rgbcolor "0x000000", cos(x)+0.05 lc rgbcolor "0x050000", cos(x)+0.1 lc rgbcolor "0x0a0000" (上のグラフの場合はこれよりもっと長い命令文) グラフだとプロット1つ毎にRRの値を加算していき、「00→ff」というように変化させていっています。これは10進数で表すと「0→255」です。 方法としてはGGとBBは「00」に固定して、RRだけ変化させて最後にRRGGBBとして結合する、という考えでRRGGBBを作成しようとしました。また16進数はループ変数の値(10進数)を変換して得ることとしました。 hex()で出力する 10進数を16進数の形式で出力するものとして「hex()」という関数があります。 例えば hex(29) とすると 0x1d を返します。後々、RRGGBBとして結合する時に先頭の「0x」が邪魔になりますが、これは文字列操作で削ればいいでしょう。 と、ここまでは良かったのですが、0〜15までは1桁(0xも付くので3文字)で書き出されます。 欲しいのは2桁で構成されるRRの値なので、0〜15までの場合に先頭(0xの後)に「0」をくっつける処理が必要となります。 やって出来ないことはないのですが、やや処理が入り組んで煩雑になってしまうのでもう少しスマートな方法を探してみることにしました。 format()で出力する Pythonで出力形式を変換するものとしてformat()という関数が使えます。 この中の変換形式の中に16

[雑感] Firefox 64.0がリリースされたので、何が追加されたのかなど

イメージ
Firefoxのバージョンが上がって64.0になっています。 バージョンアップに伴いいくつか機能が追加されたそうなので、少し見てみることにします。 関連記事やリリースノートなど Mac、PC、Linux 向け新高速ブラウザー | Firefox Latest Firefox Release Available Today - The Mozilla Blog Firefox 64.0, See All New Features, Updates and Fixes 複数タブの操作性が向上 Controlキーを押しながらタブをクリックしていくことでいくつものタブを同時に選択出来るようになってます。連続して並んでいるタブならShiftキーでクリックすることでまとめての選択も出来ます。 選択後はタブをまとめて移動させたり、ブックマークやピン止めしたり出来るようです。 こちらは選択してるときのタブの状態のスクショ。右3つが選択状態で左2つは非選択状態。 Linux版とMac版でパフォーマンス向上 link time optimization (Clang LTO)というのが有効化されたため、Linux版とMac版でパフォーマンスが向上したそうです。Windows版では63ですでに有効化されてるそうです。 ちょっと使ってみた限りでは、体感的にはどう向上したのかよく分からない感じ🤔 Live bookmark機能が本体から切り離される 以前にLive bokmark機能がFirefox本体から切り離されるという話が出てましたが、このバージョンからですか。このブログでもちょっと書いたりしたんですが。 [ニュース] Firefox本体からフィード機能が切り離されるそうな 本体から切り離されるといってもアドオンとして提供されているので、継続してこの機能を使うならそちらに移行すればいいでしょう(ちょっと手間だけど😕)。 その他 その他にもいくつか機能追加などされてますね。自分にはあまり関係なさそうなのでざっくり読み飛ばしましたが、気になる方はリリースノートなり関連ニュースなど読んで下さい。

gnuplotのRGB値による色指定について

イメージ
色指定のおさらい 以前のブログ記事でcolornameによる色指定について解説しました。 gnuplotでプロットなどの色をcolornameの指定で変更する 今回はそこで少し触れているRGB値での指定方法について解説していきます。 色指定の基本の部分はそのブログ記事に書いているので、今回はそこは省略します。 RGB値での指定について 2種類あるRGB値での指定 RGB値で指定する場合、red、green、blueがそれぞれ2桁の16進数という書式で行ないます(00〜ff)。またドキュメントを読むと、通常(?)のRGB値とX11でのRGB値の2種類の書式があるようです。 通常 : "0xff0000" X11 : "#ff0000" 書式としてはRGB値の先頭に「0x」が付くか「#」が付くかの違いがあります。調べてみるとRGB値が同じでも両者は異なる色を表している場合もあるとかなんとか。ただちょっと調べたくらいではよく分からなかったので、とりあえず通常(?)とした方に絞って話を進めていきます。 RGB値を用いてプロットする方法 RGB値はコンピューターでの色表現としてはしょっちゅう出てきます。RGB値で指定したい場合はカラーピッカーなどで色を選んでそのRGB値を持ってきて指定してやればいいでしょう。 プロットするときには次のような書き方になります。 gnuplot> plot sin(x) lc rgbcolor "0x0000ff" 他にRGB値では透明度の指定もあるのですが、そちらの解説はまた別の機会にします。 RGB値を指定したときのプロット例 最後にred、green、blueのそれぞれを値を変化させていったときのプロット例を載せておきます。一番下のラインが0x000000で、その上に少しずつ各色の値を増やしたラインを追加していって並べています。 redを変化させていったとき(0x000000→0xff0000) greenを変化させていったとき(0x000000→0x00ff00) blueを変化させていったとき(0x000000→0x0000ff)  その他、gnuplot関連のブログ

gnuplotでプロットなどの色をcolornameの指定で変更する

イメージ
gnuplotの色指定について gnuplot、関数やデータファイルのプロットの色指定について少しまとめておきます。 色の指定方法はいくかあって、 plot x linetype 3 plot x linetype rgbcolor 'red' plot x linetype rgbcolor '#00FF00' などというように指定します。 基本、「linetype」もしくは「linecolor」の後ろに色の指定がくるという書式になっているようです。 colornameを用いた指定方法 今回はいくつかある色指定の中からcolornameを用いて指定する方法をまとめることにします。colornameとはなんぞや?というと「red」とか「green」というような色に個別の名前が割り振られているものになります。使える色の名前さえ把握出来ていれば、直感的には一番扱いやすい指定方法だと思います。 (colorname以外には16進数でのRGB指定(透明度も扱える)などがあります) 使うことの出来るcolornameの確認方法 gnuplotで使えるcolornameを確認するには gnuplot> show colorname とします。これで使える色のリストが表示されます(対応するRGBも一緒に表示される)。 プロットするときの指定方法 指定方法は gnuplot> plot sin(x) lt rgbcolor 'red' というようになります。また簡略的に以下のようにも書けるようです。 gnuplot> plot sin(x) lt rgb 'red' gnuplot> plot cos(x) lc 'green' ひと通り色をグラフに出力してみる 指定出来る色をひと通りまとめてグラフにしてみました。端末をpngcairoです。 (端末によっては色の差異があるかも知れませんが、確認はしていません😞) 灰色のgrayについてはgreyという綴りのものも用意されています(綴りが異なるだけで色としては同じ…だと思います)。 'white','black','d

データ測定で全部「分単位」に揃えちゃえば楽かと思ったらそうでもなく

日付をまたぐデータ測定をしていた時、日時の扱いであれこれ考えていたときのまとめです。適当に書き散らしただけなので、雑談程度のまとめとなります。 以下のような日付と時刻のデータがあります。 2018/12/07 11:34 2018/12/07 19:09 2018/12/08 03:21 2018/12/08 15:27 2018/12/09 01:34 連続データとして扱うには単位を統一する必要があるので、これらを分単位で書き直すことにします。日付部分の情報は削って「1日目、2日目、3日目…」と扱うことにします。 まず経過日数を「時(hour)」に変換してまとめます。 11:34 19:09 (3+24):21 → 27:21 (15+24):27 → 39:27 (1+24*2):34 → 49:34 要は経過日数をaとしてa*24をそれぞれの時刻に加算しています。1日目の場合は日数が経過していない(つまり0日目なのでa=0)ので0*24が加算されます。2日目は1日が経過しているのでa=1、1*24が加算となっていきます。 これではまだ時(hour)と分(minute)が分かれているので、これも分にまとめます。 11*60+34 → 694 19*60+09 → 1149 27*60+21 → 1641 39*60+27 → 2367 49*60+34 → 2974 経過時間と考えると始まりが「694」というのは直感的ではないので、始まりの「0分」として扱うことにします(つまり相対時間に書き直す)。 694 - 694 = 0 1149 - 694 = 455 1641 - 694 = 947 2367 - 694 = 1673 2974 - 694 = 2280 このように単位を合わせてしまえば連続データとして扱いやすくなります。あとから絶対時間に戻したくなる場合もあるので、起点の日時(2018/12/07 11:34)は別で記録しておけばいいでしょう。 めでたしめでたし。 と、簡単に考えると話はここで終わるのですが、より厳密に考えていくといくつか考慮すべき条件が増えていきます。。 まず月をまたぐ場合、月によって30日、31日、28日と分かれているので、「月→日」に変換する場合に条件分けして計

Youtubeでの動画視聴をキーボード操作でより快適に(パソコンで見てるとき)

イメージ
Youtubeで再生画面を大きくする。シークバーを操作する。再生速度を変更する。こういうときはマウスでメニューを開いたりして操作して行ないます。実はこれ、大抵の操作はキーボードから特定のキーを押すことで行うことも出来るんです。 用意されているキーボードショートカットはYoutubeの動画を視聴しているときにキーボード の 「h」 を押すことで確認出来ます、だったと思うんですがちょっと試したら「h」を押しても表示されないですね…。 キーボードショートカットのヘルプは以下のページで説明されているので、そちらで確認してみて下さい。 YouTube のキーボード ショートカット - YouTube ヘルプ いくつかキーボードショートカットをリストアップすると以下のような感じ。 > : 再生速度を一段階上げる < : 再生速度を一段階下げる k : 一時停止と再生再開 m : 音声をミュート j : 10秒戻す l : 10秒進める ← : 5秒戻す → : 5秒進める ↑ : 音量を上げる ↓ : 音量を下げる 0〜9 : 対応するシークバーの位置へ飛ぶ(例えば4を押すとシークバー40%の位置) f : フルスクリーン表示切り替え ここに挙げた以外のキーボードショートカットもあるので、ヘルプを見て実際に試してみるのがいいでしょう。 さて、Youtubeの埋め込み表示の場合はどうなるんでしょう?ということで試してみましたが、ちゃんと動画にフォーカスが当たっていればキーボードショートカットは機能するようです。

HTMLで目次(Table of Contents)作成する方法(およびBloggerでの注意点)

HTMLでブログページの目次を作る場合、手順としては 目次からのジャンプ先にしたい要素に「id」を付ける 付けたidに対応したリンクを「<a href=>」で作り、それを目次としてまとめる という感じ。要はブログページ内の任意の箇所に飛べるページ内リンクを作り、それらをまとめて目次として扱うというようになります。 idの付け方 idを付けるとき、要素はどれでもいいようですが見出し要素に付けるのが一般的かと。 例えば <h2 id="midashi1">見出し1</h2> となります。 この段階では単に要素に「id」を付けただけなので、このままでは何も機能しません。目次として機能させるには、それぞれの「id」を付けた箇所へジャンプするリンクを作り、それを目次としてまとめる必要があります。 idを付けた箇所へジャンプするリンクの作成 リンク書式としては、先程作ったidへのページ内リンクを作成する場合は <a href="#midashi1">見出し1へのリンク</a> となります。 これは相対参照のような扱いですが、URLをすべて記述して絶対参照のような書式でも書くことが出来ます。例えば <a href="http://example.com/index.html#midashi1">見出し1へのリンク</a> となります。 Blogger特有の事情 (以下の内容はあくまでも2018年12月4日現在で自分が確認してみた事情です。今後はこのBloggerの挙動は変わるかも知れません) Blogger特有の事情について触れておきます。「id」作成は問題ないのですが、相対参照をBloggerでHTMLコードとして書く場合、 <a href="#midashi1">見出し1へのリンク</a> と書くことも出来ますし、そのままブログとして公開してもページ内リンクとしてちゃんと機能します。そこまではいいのですが、編集モードでHTMLコード作成から通常の編集モードに切り替えると自動的にコードが以下のような形式で上書きされます。 https

Bloggerでの目次作成テスト

目次タイトル1 目次タイトル2 目次タイトル3 a href="#moku1">目次タイトル1 a 目次タイトル1 あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお 目次タイトル2 かきくけこかきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ 目次タイトル3 さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ さしすせそ

空模様(2018年11月25日〜12月1日)を映したタイムラプス動画

イメージ
2018年11月25日〜12月1日の空模様を映したタイムラプス動画をYoutubeにアップロードしています。 天気としては全体的に晴れが多かったです。だいぶ日が短くなって寒くなってきました。標高の高い山ではちらほらと雪が降っているようです。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 11月25日 日曜日 おおむね晴れ 11月26日 月曜日 晴れ時々曇り 11月27日 火曜日 おおむね晴れ 11月28日 水曜日 晴れのち曇り 11月29日 木曜日 曇り時々晴れ 11月30日 金曜日 おおむね晴れ 12月1日 土曜日 曇り時々晴れ

Goxelというvoxelイメージを描けるソフト

イメージ
voxelイメージとはなんぞや?というと自分も分かってはいませんが、要はゲームのMinecraft風にブロックを積み上げて作る画像のようなもののようです。 Voxel - Wikipedia ボクセル - Wikipedia ゲームに限らず医療や科学関連でも使われる表現手法の模様。 で、今回紹介する「 Goxel 」というソフトですが、こちらはオープンソースでWindows、Mac、Linuxとマルチプラットホームで使えるソフトです。あとiOS版もあるみたい。 3D空間にマウスでぽちぽちクリックしてブロックを配置していきます。 ソフト自体は結構シンプルなので、 特に説明が無くても簡単に使い始められると思います。 簡単に作ってみるとこんな感じになりました。 ブロックを置く時の操作はややクセがあるようですが、操作の特性をつかめれば効率的にイメージを作っていけると思います。

Emacsのbufferの扱いについて簡単な範囲での説明

イメージ
Emacsでいうところのbufferとは Emacsでファイルを開くと、Emacsとしてはbufferとして開かれ編集後に保存するとファイルに保存されることになります。いわゆるところのメモリみたいな扱いでしょうか?一端ファイルの中身を別の領域に展開して編集していくみたいな。 Emacsに限らず他のソフトでも内部的には同様の扱いをするでしょうけど、Emacsではbufferを明確に認識して扱うことで様々なことが出来るようになっています。いくつもEmacsを起動しなくても、bufferを複数使うことで多くのファイルを1つのEmacs内で扱うことも出来ます。 今回は自分で分かる範囲でbufferについて基本的な部分を簡単にまとめていくことにします。 上のスクリーンショットはC-x C-bでbufferのリストを開いているところ bufferの基本 bufferの選択もしくは新規buffer作成 C-x b buffer名を指定して選択もしくは新規bufferを作成します。 bufferを選ぶときはタブ補完を使うと便利です。 一つ前もしくは次のbufferを選択 C-x → C-x ← 現在開いているbufferのリストを表示する。 C-x C-b windowが分割されbufferのリストが表示されます。 リストの始めの列の記号は次の通り。 「.」 : current buffer 「%」 : read only 「*」 : 編集されている(保存すると解除される) bufferの名前を変更する M-x rename-buffer ファイルを開く場合はファイル名がbuffer名になるのであまりbuffer名を変更することはないかも?メモや一時編集用としてbufferをいくつも作る場合には名前を分かりやすくした方がいいでしょう。 現在のbufferをリードオンリーに切り替える(戻すときも同じ) C-x C-q 編集したくないものを開いている場合に便利かも。 bufferを閉じる C-x k 開く場合と同様にbuffer名を指定して閉じるのを選びます。 補足 ファイルを開かない場合でも、Emacsを起動した段階ですでに以下のようなbufferが開かれています。 *scratch* *Messages* ファイルを

今日のお絵描き

イメージ
なんとなく絵を描きたくなったので2枚ほど描いてみました。Twitterの方にも投稿してあります。 1枚目は自分でも一体何を考えて描いたのか思い出せません🤔 2枚目のは今期の 某アニメ のキャラがOPで頭に付けていた花をモチーフに描いてみました🌼

Emacsのウィンドウの各要素の名称について

イメージ
Emacsのウィンドウ、いくつかの要素からなっていてそれぞれに名称があります。 これまでなんとなく覚えてる程度だったんですが、ここいらで簡単にまとめておくことにしましょう。 frame : ウィンドウ自体のこと、もしくはターミナル画面 menu bar : frameの一番上のメニューのこと tool bar : menu barの下のアイコンが並んでるところ window : tool barの下、bufferが表示されているところ scroll bar : windowの左右どちらかのサイドにあるスクロールバー mode line : windowの下のところ echo area : frameの一番下のところ もうちょい分かりやすいよう図で説明するとこんな感じ。 (字がきたないのと、綴りが間違ってる箇所は目をつぶっていただければと…) さて、frameは普通のアプリケーションではwindowと呼ぶわけですがEmacsではちょっと違った割り当てになっていてそこはちょっと迷いやすいかなと。まぁ実際にはEmacsではあまりwindowという名称は見かけないので、それほど気にすることはないかなと思います。

gnuplotでタイトルや軸ラベルを付けるとグラフ領域が小さくなってしまう件について

イメージ
gnuplotではコマンドでどういうグラフにしていくのかを設定していくので、割りと均一なものが作りやすいです。マウスでいろいろ編集出来るソフトと比較すると、始めは結構とっつきにくい感じはありますが、コマンドさえ把握していれば同じ形式のグラフがすぐに描けるのは利点となるでしょう。 設定によってグラフ領域の大きさが変わってしまう ただ、gnuplotで同じグラフを描いているつもりでも、微妙に違ったものが出来てしまうことがあります。 よくあるのが、グラフにタイトルを追加した場合。 例えば、これはタイトル無しでそのままプロットした場合のグラフ。  で次がタイトルを設定してプロットした場合のグラフ。 一見するとタイトルのあるなしだけで同じグラフに見えますが、重ねて表示すると次のようになります。 グラフの縦の幅が微妙に違っているのが分かりますね。 さらにタイトルだけでなく、x軸、y軸の軸ラベルも追加していくと、より違いが顕著になっていきます。 以下はxlabel, ylabel, x2label, y2label, titleを設定してグラフにしたもの。 先程と同様に何も設定していないグラフに重ねてみると となるわけです。ここまでになるとだいぶ違いがあるのが分かります。 一つだけグラフを描くだけならいいんですが、例えば2つのグラフを左右で並べて比較したい場合では、比較するモノ同士でグラフ領域が異なってしまっているとよろしくはないです。 なぜグラフ領域の大きさが変わってしまうのか? gnuplotではグラフ領域の大きさはmargin(マージン)の設定で変更することが出来ます。 で、デフォルトではこのmarginの値はcomputed automatically、つまり自動で計算され設定されるようになっています。なので、タイトルや軸ラベルを配置するとそれに合わせてmarginが設定され、グラフ領域の大きさも変わってきます。 (と、自分なりに解釈はしてますが、ドキュメントの読み逃しもあるかもなので詳しくはそちらを読んで下さい) なので、グラフ領域を決まった大きさにしたい場合はmarginを自動ではなく手動で設定することになります。 marginの設定 marginの設定はグラフ領域の上下左右の4つ。 lmarg

gnuplotで媒介変数表示(parametric)を使ってグラフを描く方法 (円や球、螺旋模様などに)

イメージ
関数のグラフを描く場合、普通はxの値に対応したyの値をプロットしていきます。 これとは異なる方法で、媒介変数表示( Wikipedia )という表し方があります。円のような曲線をグラフに描く場合の数式の表し方として便利とかなんとか。 媒介変数表示とは 少し説明してみると、ある変数tがあるとして、このtに対応して x = cos(t) y = sin(t) のようにxとyを決める関数がある、というようなものでしょうか。適当に図で説明するとこんな感じになるかと思います。 gnuplotで媒介変数表示をする方法 (set parametric) この媒介変数表示をgnuplotで使うには「set parametric」と設定します。これで二次元プロットでは「t」、三次元プロットでは「u, v」の変数を使って媒介変数表示が出来るようになります。三次元の方は2つ変数が使えるのですが、ちょっとイメージし難いですね…。三次元空間に球などを表現する場合に便利なようです。 変数のデフォルト値) またデフォルトではt, u, vの変数の値は[-5:5]となっているようです。 この値はそれぞれtrange、urange、vrangeを設定することで変更できます。 samplesの設定 あと円を描いてもややカクカクしたグラフになってしまう場合はsamplesの設定を見直すといいかと思います。 (参考 : gnuplotで関数プロットの形がおかしい場合 : samplesの値の設定について ) 実際の媒介変数表示のグラフの例 最後にちょっとしたグラフの例を載せておきます。 円を描く関数をちょっと手を加えて三次元に表すようにしています。 gnuplot> set parametric gnuplot> splot sin(u),cos(u),u w p もう少し手を加えてみましょう。 gnuplot> splot sin(v)/10,cos(v)/10,v w p, sin(v)/5,cos(v)/5,v w p pointtype 2, sin(v)/3,cos(v)/3,v w p, sin(v)/2, cos(v)/2,v w p, sin(v)/1.5, cos(v)/1.5,v w p

空模様(2018年11月18日〜11月24日)を映したタイムラプス動画

イメージ
2018年11月18日〜11月24日の空模様を映したタイムラプス動画を Youtubeにアップロードしています。 天気としては全体的に晴れが多かったです。そろそろ雪が降ってもおかしくない時期になってきました。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 11月18日 日曜日 曇りのち晴れ 11月19日 月曜日 曇り時々晴れ 11月20日 火曜日 曇りのち晴れ 11月21日 水曜日 おおむね晴れ 11月22日 木曜日 おおむね曇り 11月23日 金曜日 おおむね晴れ 11月24日 土曜日 晴れ時々曇り

Emacsですべてのテキストを選択する方法

イメージ
Emacsでテキストを書いてそのままコピーして別の場所に貼り付けたい場合に、すべてのテキストを少ない操作でコピー出来ると便利です。 選択操作をメニューから行う場合とキーバインドで行う方法 で、それをEmacsで行う方法は簡単で、メニューから[ Edit ]→[ Select All ]を選択してそれをクリップボードにコピーすればいいだけです。 キーバインドで選択操作を行うには「 C-x h 」とします。 なおGUIでEmacsを使う場合について説明しましたが、端末内でEmacsを使う場合もメニューは使えるので同様の操作が行えます。 端末でEmacsを使っている場合にメニューから選択する方法 端末でメニューを選択するには「 F10 」キーを押すことで行えるようになります。もし端末側でF10が使われていてEmacsの方にキーが渡されない場合は、「 M-x menu-bar-open 」とすればいいでしょう。 あとはGUIのときと同様に、「 Select All 」を選べばいいわけです。もちろんキーバインドの方を覚えているならそっちの方が手順が少なくて楽です。 その他の方法 カーソル移動とマーク操作を組み合わせれば以下のようにしても出来ますが、上で解説した方法を知っているなら特に使う機会はないかなと😉 bufferの先頭に移動する : M-< 先頭位置でマークする : C-Space マークした状態でbufferの最後に移動する : M-> 選択されたregionをコピーする : M-w Amazon Emacs関連書籍

空模様(2018年11月11日〜11月17日)を映したタイムラプス動画

イメージ
2018年11月11日〜11月17日の空模様を映したタイムラプス動画をYoutubeにアップロードしています。 天気としては全体的に晴れが多かったです。今年も結構寒くなってきました。窓に結露が出るようになってきたので、結露防止で網戸を被せるようにしています。 アップロードした動画は一週間分まとめたものになっています。 以下、Youtube動画内の各日付へのリンクと天気など情報になります。 11月11日 日曜日 おおむね晴れ 11月12日 月曜日 晴れのち曇り 11月13日 火曜日 曇り時々晴れ 11月14日 水曜日 曇り時々晴れ 11月15日 木曜日 晴れ時々曇り 11月16日 金曜日 晴れ時々曇り 11月17日 土曜日 曇り時々晴れ

Emacsのブックマーク機能について

イメージ
Emacsでよく編集するファイルをどこかに登録してすぐ開けるようにしておきたい場合はブックマーク機能を使うと管理するのに便利です。 (なお「最近開いたファイルを開く」という機能はこれとはまた別でRecentf modeというマイナーモードを有効とするよう設定するといいようです) メニューバーからアクセス ブックマーク機能にはEmacsのメニューバーからアクセス出来ます。 ファイルのブックマークへの登録方法 ファイルをブックマークに登録するには、ファイルをbufferに開いている状態で「Set Bookmark」を選択して行ないます。キーバインドで行うには「C-x r m」とします。なおブックマークにはファイルと開いているときのカーソルの位置も保存されます。ブックマークからファイルを開くと、そのカーソルの位置も復元されます。これがわずらわしい場合はブックマークに登録するときはカーソルをbufferの先頭に合わせておけばいいでしょう。 ブックマークに登録したファイルを開く 登録したファイルを開くには「Jump to Bookmark」を選ぶか「Edit Bookmark List」を選びます。 「Jump to Bookmark」を選択するとポップアップでブックマークに登録したファイル一覧が表示されると思います。キーバインドでは「C-x r b」ですが、この場合はミニバッファーでどのファイルを選択すると指定することになります。微妙に選び方が異なります。 「Edit Bookmark List」ではブックマークに登録されたファイル一覧がbufferに表示されるので、その中から開きたいファイルを選びます。キーバインドは「C-x r l」です。 ファイルのブックマークからの削除 ファイルをブックマークしておく必要が無くなったら「M-x bookmark-delete」でそのファイルのブックマークを消すことが出来ます。 その他にもブックマークに関する機能はありますが、とりあえず基本としてはこんなところでしょう。あとブックマーク自体は「.emacs.d/bookmarks」というファイルに保存されます。 実際のブックマーク機能を使ってみての感想ですが、ブックマークを呼び出すキーバインドをよく忘れてしまって結局あまり使わなくなっ

gnuplotの軸(axis)の設定 : zeroaxisで書いた軸に目盛りを描く

イメージ
以前のブログ記事でzeroaxisを設定することでグラフ中にx軸、y軸を描く方法を解説しました。 gnuplotの軸(axis)の設定 : x軸、y軸を描く その時作ったグラフは以下のようになっています。 ここで目盛りについて見てみると、グラフの枠に沿っては目盛りはあるのですがzeroaxisの設定で描かれた線には目盛りが描かれていません。 今回は、このzeroaxisで描いた線に目盛りを描く方法を解説していきます。 zeroaxisに目盛りを描く設定 zeroaxisでx軸、y軸を描く まず以前のブログ記事と同様にx軸とy軸を描きます。 gnuplot> set xzeroaxis linetype 1 linecolor "black" gnuplot> set yzeroaxis linetype 1 linecolor "black" xtics、yticsの設定により枠ではなく軸に目盛りを描くようにする 目盛りの設定に関しては主にxtics、yticsで行うことになります。設定項目は多いのですが、その中に目盛りを描く位置の指定項目があります。指定出来る場所は以下の2つ。 border axis デフォルトではborder、つまりグラフの枠に目盛りが描かれる設定になっています。なので、x軸に対して目盛りを描くためにはaxisに設定すればいいので gnuplot> set xtics axis とします。y軸に対しても同様に gnuplot> set ytics axis とします。ここまででグラフをプロットしてみると以下のようになります。 これだと目盛り間隔が広すぎてやや違和感があるので、以前のブログ記事で解説した小目盛りを描く設定により小目盛りを描き足します。 gnuplotの軸(axis)の設定 : 軸の小目盛りの設定(mxtics, mytics ...) gnuplot> set mxtics gnuplot> set mytics なお小目盛りの位置の設定は目盛り、つまりxtics、yticsの設定に従います(詳しくは以前のブログ記事参照)。 小目盛りを描くことであまり違和感無く見れるグラフになったかと思います。

EmacsのMinor mode(マイナーモード)についてもう少し詳しく

先日は以下のブログ記事にMajor mode(メジャーモード)について書いたので、今回はMinor mode(マイナーモード)について書いていきます。 EmacsのMajor modeについてもう少し詳しく と、「書いていきます」と言いましたが、こっちはあまり書く内容が無かったです…。 それでも一応書いていくと、Minor modeは、buffer内で機能するものと(ローカル)、Emacs全体で機能するもの(グローバル)に分かれるようです。 ローカルで機能するものとしてはauto-fill-modeや、abbrev-modeなどなど。テキストの編集に関するものが多いようです。 グローバルで機能するものとしては、scroll-bar-modeやカーソルの位置を表示するモードなどなど。こちらはEmacsの表示に関するものが多いようです。 あとはHooksという仕組みについて絡めればもう少し詳しく書けるかもですが😉 まぁモードの扱いに関しては基本の仕組みを抑えておく程度でいいのかなと。Emacsをカスタマイズしていく上ではどうしても仕組みの方を把握しておく必要になってくると思いますが、それはある程度使いこなせるようになってからでもいいかなと。

Déjà Dupのバックアップではバックアップ先をマウントしていないとダメっぽい?

Ubuntu 18.04 LTSを使うようになってから、どうもDéjà Dupのバックアップの挙動に「?」と思うことが🤔。 現時点で使っているDéjà Dupのバージョンは37.0。 で、いまの環境では、バックアップ先に2台目の内蔵HDDを指定しています。 Ubuntu 16.04 LTSのときと同じ構成で、そのときは初期設定を済ませれば後は特に意識せずにもバックアップが行われていました。ただ18.04 LTSに上げてからは、2台目の内蔵HDDをマウントしていないとバックアップ時にエラーが出るという挙動を示すようになりました。 エラーが出た後にマウントすればバックアップは行われるようになるので若干手間が増えた程度。ですが、なんとかなるならなった方がいいわけで…。 原因を考えるとしても、Déjà Dupの方を考える他に18.04 LTSでのディスク管理の方も考えないと分からなそうですね。ただシステム周りの方はあまり知識が無いのでちょっとこれ以上はなんともかんともわからないです😓。 launchpadの方を見たら同様の報告があったので、そのうちになんとかなるかもです。 あとは現時点で出来る対処としては、Ubuntu起動時に2台目の内蔵HDDもマウントされるようにしておくことくらいでしょうか。

EmacsのMajor modeについてもう少し詳しく

先日、以下のブログにEmacsのmodeについて簡単に書いたので、その続きでMajor modeについてもう少し詳しく書き足していきます。 EmacsのMajor modeとMinor modeの触りの部分 まずMajor modeはそれぞれにいろいろ機能が異なり、タブを押した時の挙動や独自のコマンドを持っている。 だいたいのMajor modeは以下の3つのグループに分類される。 テキスト (Text modeやHTMLなどマークアップ関連のmode) プログラミング (C, Python, Ruby, Lispなどのmode) その他、特殊なもの (Dired, Shell modeなど) もっとも基本的なMajor modeはFundamental mode。ただテキストファイルを開けばText modeになるので、これといってFundamental modeを使う機会はないかも知れない。いままで見た覚えもなかったし。 Major modeはbufferごとに設定される。そして、デフォルトでは開いたファイルの種類によりMajor modeの種類も設定される。もしそれとは違ったMajor modeを使いたい場合は、手動で別のMajor modeに切り替えればよい。 さて、modeを説明する上でHooksという仕組みについても触れておいた方がいいのだろうけど、あいにくとまだそれが何なのかよく分かっていないのでまた別の機会にまとめることにします🤔

gnuplotの軸(axis)の設定 : 軸の小目盛りの設定(mxtics, mytics ...)

イメージ
今回はgnuplotで軸の小目盛り(Minor tic marks)を設定する方法について説明していきます。設定項目としては以下の2つになります。 mxtics mytics 実際にはこの2つの他にmzticsや各軸の第二軸などの設定項目もありますが、今回はこの2つに絞って説明することにします。 目盛りの説明より先に小目盛りの説明をしますが、通常の目盛りはデフォルトで表示されているのでとりあえずそちらは後回しにしてまた別のブログ記事に書くことにします(忘れてなければ)。 小目盛りとは で、そもそも小目盛りとはなんぞや?というと、通常の目盛りの間にある小さな数字の付かない目盛りのことです。手書きの絵で説明するとこんなヤツのことです。 gnuplotではデフォルトの目盛りは以下のようになっています。目盛りだけで小目盛りは表示されません。 gnuplotで小目盛りを表示するには、明示的に表示することを指定する必要があります。 小目盛りを表示する方法 小目盛りを表示するための設定は以下のようになります。 gnuplot> set mxtics この設定では自動で小目盛りが割り当てられることになります。表示は以下のようになります。 なおここではx軸に対してのみ設定していますが、y軸に対しても設定するには gnuplot> set mytics とします。 少目盛りの表示間隔をカスタマイズする さて、小目盛りの表示間隔を自動ではなく任意の値で割り振りたい場合もあるでしょう。 この場合の設定方法は gnuplot> set mxtics 3 となるのですが、ここで与えた「3」という数字はx軸の値で3ずつ表示することを表してはいません。 ここで与えている「3」という数字は、通常の目盛りの間にいくつ間隔を割り当てるのかを示しています。つまり「3」を与えると、目盛りの間に3つ間隔が出来るよう小目盛りが割り当てられます。 このへんは割り当ての考え方の話になってくるんですが、以下の図のような割り当て方になってると考えればいいでしょう。目盛り間を3分割するように小目盛りの線が2つ配置されます。 gnuplotの表示で見ると以下のようになります。 なので5分割にしたい場合は gnuplot> set

EmacsのMajor modeとMinor modeの触りの部分

イメージ
Emacsについて基本部分をちょこちょこと調べているので、少しずつまとめていきます。ブログなのでとりあえず雑に書いてますが、ある程度まとまったらちゃんと書く予定。 今回は、EmacsのMajor modeとMinor modeについて。 2つのモードがあることを知っても具体的にどういう機能があってどう使っていけばいいか分からないと意味をなさないので、そのへんはまた次回に。 Major modeについて Major mode(メジャーモード)は排他的で1つのbufferに対して1つのMajor modeしか選択出来ない。もし他のMajor modeを使いたい場合は、その時使っているMajor modeから切り替えて使うことになる。 Minor modeについて Minor mode(マイナーモード)は互いに独立しているため、複数のMinor modeを同時に使用することも出来る。 異なるMajor modeの時のモードライン bashスクリプトファイルを編集しているときのモードライン 通常のテキストファイルを編集しているときのモードライン

スポンサーリンク