投稿

5月, 2019の投稿を表示しています

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

イメージ
gnuplotでのサイズ指定 gnuplotでプロットをpngなど画像として出力する際のサイズ指定は次のように行ないます。 gnuplot> set terminal pngcairo size 640, 480 出力端末(ここではpngcairo)の設定のときにサイズ指定も行うという型式です。 出力例 以下は 1280x960 640x480 320x240 の3つのサイズで出力したものです。 (別々に出力してGIMPで合成しています) プロットソースコード set term pngcairo size 1280, 960 font ",24" set output "1280x960.png" set title "size : 1280x960" plot sin(x) w l lw 5 lc "red" set term pngcairo size 640, 480 font ",12" set output "640x480.png" set title "size : 640x480" plot x**3 w l lw 3 lc "blue" set term pngcairo size 320, 240 font ",8" set output "320x240.png" set title "size : 320x240" plot 2**x w l lw 2 lc "green" 間違えやすい設定(set size)  gnuplotには上記とは異なる "set size"という設定があります。これは何かというと、プロット領域のサイズ指定に関する設定となっています。出力画像のサイズ設定ではありません。 (古いバージョンのgnuplotではこの "set size" で出力画像のサイズ設定を行っていたようです。また端末によってはまだ古い設定のままのものが残っているようです)  "set size&qu

gnuplot : 日時データのプロット方法を忘れてしまった場合の対処法(usingで擬似的な列を指定する)

はじめに : 日時データのプロットについて 以前にgnuplotで日時データをプロットする方法の解説をしました。 gnuplotでの日時データのプロットについて gnuplotの日時データ扱いのフォーマット  方法自体はそこで紹介したものでいいのですが、実際に日時に関する実データをプロットするときにその設定を探してくるという手間が生じるでしょう。普段から日時データを扱っていない場合はなおさらかと思います。 今回紹介する方法は、日時データでもとりあえずプロットだけしてみるという話です。ちゃんとプロットする場合には当然向いていない方法なのであしからず。 (この方法の問題点は最後に後述してあります) とりあえず日時データをプロット 方法としてはusingの解説で紹介したことを用います。 gnuplotでデータファイルをプロットするときの列の指定について(using)  ここで紹介した、擬似的な列を指定する方法を用います。 用いるデータ  プロットに用いるデータとして以下のようなものを用意しました。 2018/3/9 21:00:00 3.6 2018/3/9 22:00:00 6.1 2018/3/9 23:00:00 3.0 2018/3/10 00:00:00 1.9 2018/3/10 1:00:00 5.2 2018/3/10 2:00:00 1.1 2018/3/10 3:00:00 2.2 2018/3/10 4:00:00 1.9 2018/3/10 5:00:00 2.8 1列目 : 年月日 2列目 : 時刻 3列目 : Y軸データ となっています。 これをそのままプロットしてもおかしなグラフになってしまうでしょう。またusingを使った場合でも "using 1:3" としても "using 2:3" としてもまともにプロットされません。  これを擬似的な列でプロットする方法 using 0:3 もしくは using 3 と指定すれば、x軸が 0, 1, 2, 3, 4, 5 , ... となり一応グラフとしてプロットされます。 (using ($0):($3)でも可)  この方法はとりあえず簡易的にプロットしてデータ傾向を確

gnuplotプロット例 : 方位の図示

イメージ
gnuplotによるプロット例 : 方位の図示 方位の図示 プロットソースコード set size square set angles degrees unset key unset tics l = 3.0 l2 = l*0.85 d = 360.0/16.0 n=1; set label n "東北東" at cos(n*d)*l, sin(n*d)*l center font ",10" n=2; set label n "北東" at cos(n*d)*l, sin(n*d)*l center font ",16" n=3; set label n "北北東" at cos(n*d)*l, sin(n*d)*l center font ",10" n=4; set label n "北" at cos(n*d)*l, sin(n*d)*l center font ",22" n=5; set label n "北北西" at cos(n*d)*l, sin(n*d)*l center font ",10" n=6; set label n "北西" at cos(n*d)*l, sin(n*d)*l center font ",16" n=7; set label n "西北西" at cos(n*d)*l, sin(n*d)*l center font ",10" n=8; set label n "西" at cos(n*d)*l, sin(n*d)*l center font ",22" n=9; set label n "西南西" at cos(n*d)*l, sin(n*d)*l center font ",10" n=10; set label n "南西" at cos(n*d)*l, sin(n*d)*l center

CSSの勉強 6 : 子孫結合子(Descendant combinator)について(グループ化とは異なる)

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 セレクタをグループ化で作るとき .aaa, .bbb {   font-size: 20px;   color: green; } のようにセレクタはカンマ(,)で区切って作る。この場合、セレクタを使うときclass="aaa"とclass="bbb"は同じ設定となる。 それと似た以下のような書き方がある。 .aaa .bbb {   font-size: 20px;   color: green; } こちらはカンマ区切りではなく、半角スペースで区切られている。これはカンマを書き忘れたのではなく、 子孫結合子(Descendant combinator) を用いるときの書き方となる。 子孫結合子(Descendant combinator)とは 子孫結合子とは、セレクタを作るときにいくつかある結合子の中の一つ。子孫結合子によってセレクタを作ると、そのセレクタの有効となる条件も合わせて決まる。条件とは、始めのセレクタが適用されている要素内でその次のセレクタを適用した要素を作ることで有効となる。  上の例で作ったセレクタだとHTMLに <要素1 class="aaa">   <要素2 class="bbb">    子孫結合子のテスト   </要素2> </要素1> と書いた場合に要素2の中で .aaa .bbb のセレクタが有効となる。 どちらか一方だけでは有効とはならない。また順序が逆の場合も有効とはならない。 グループ化の書き方と似ているが、働きは異なるので注意。

gnuplot : プロット結果をデータファイルとして書き出す方法(set table)

gnuplotでデータファイルを書き出す、とは  gnuplotは基本、関数やデータファイルをプロットするソフトですが、その逆でプロット結果をデータファイルとして書き出すという機能もあります。 (実際にはプロットは行われず、plotコマンドによってデータファイルが出力されます) データファイルを書き出す利点  プロット結果をデータファイルとして書き出すことで、何かしらのダミーデータを作ることや、データファイル自体に演算処理をしてそれをデータファイルとして書き出すことなどが出来ます。 データファイルとして書き出す方法 簡単な例  データファイルとして書き出す場合、簡単には gnuplot> set table "output.csv" gnuplot> plot sin(x) となります。これでフォルダ内に"output.csv"というデータファイルが書き出されます。また、この状態のままだとplotコマンドを続けて実行するとデータファイルに新しいプロット結果のデータが追記されていきます。再び通常のプロットに戻る場合は gnuplot> unset table とします。  書き出されるデータファイルは次のような内容となります。 # Curve 0 of 1, 100 points # Curve title: "sin(x)" # x y type -10  0.544021  i -9.79798  0.364599  i -9.59596  0.170347  i -9.39394 -0.0308337  i 方法の解説  基本的には上の例のように"set tabel"の後ろに出力したいファイル名を付けて設定します。このとき、すでに存在するファイルを指定すると内容が上書きされるので注意して下さい。既存のファイルに追記していきたい場合は gnuplot> set table "output.csv" append のように"append"オプションを付けます。 出力結果の解説  出力結果を抜き出すと以下のようになっています。 -10  0.54

CSSの勉強 5 : 各種セレクタについて

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 CSSの各種セレクタについて 要素セレクタ <p>や<h1>などHTMLの要素に対して適用するもの。 要素セレクタは要素名としてCSSに記述する。 HTMLファイルの要素に対してそれが適用される。 IDセレクタ ある限定した要素に対してスタイルを適用したい場合に用いる。 使用条件として、一つのページで重複してIDセレクタを用いることは出来ないらしい。 実際、重複して使った場合にどうなるかは分からない。ブラウザ側での解釈次第? よく分からない場合は後述するクラスセレクタを用いるのが無難の模様。 IDセレクタは以下のように名前の頭にハッシュ(#)記号が付く。 #tetete 使うときは <p id="tetete"> idセレクタのテスト </p> のように用いる。 クラスセレクタ ある限定した要素に対してスタイルを適用したい場合に用いる。IDセレクタとは異なり、一つのページで重複しても用いることが出来る。 クラスセレクタは以下のように名前の頭にドット(.)記号が付く。 .momo 使うときは <p class="tetete"> 暮らすセレクタのテスト </p> のように用いる。 また複数のクラスセレクタを要素に適用することも可能。".momo"と".mumu"の二つのクラスセレクタを適用するには <p id="momo mumu"> クラスセレクタ複数使用のテスト </p> とする。

gnuplot : テキストを表示するラベル(label)の設定方法

イメージ
gnuplotのラベル(label)  以下のようにグラフの任意の位置に文字列(テキスト)を表示する場合、"ラベル(label)"という設定を用いることで行ないます。 ラベル設定の例 基本的な使い方 gnuplot> set label "write label" とすれば、x, y座標の原点(0, 0)に "write label" という文字がラベルとして設定されます。あとはグラフをプロットすれば、その位置にラベルが表示されます。  原点以外にラベルを設定したい場合は gnuplot> set label "write label" at -2, 3 のように "at"でラベルを設定したい位置をx, y座標で指定します。 x, y座標以外で位置を指定したい場合は次の解説記事を参考にして下さい。 gnuplot : 各種オブジェクトを配置するときの座標について(Coordinates) 複数ラベルを設定する場合  上記の設定方法では、set labelのコマンドを繰り返して使うと新しいラベルが作られていきます。これでも複数ラベルは設定出来るわけですが、管理するという点では不便です。  そのような場合、ラベルを番号で管理するという方法が使えます。方法は以下のように、"set label" の後ろに1以上の整数で番号を付けます。 gnuplot> set label 1 "text1 label" at -2, 2 gnuplot> set label 2 "text2 label" at 3, 5 gnuplot> set label 3 "text3 label" at 3, 8 設定してあるラベルの確認 どのようなラベルを設定してあるか確認するには次のようにします。 gnuplot> show label ラベルを消去  設定してある全てのラベルを消去するには次のようにします。 gnuplot> unset label  また個別にラベルを消去するには、"s

CSSの勉強 4 : コメントの書き方

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 CSSでのコメントの書き方 コメントにしたい箇所を /* と */ で囲む。 例えば これはこめんとです をコメントにすると /* これはこめんとです */ となる。 複数行のコメント なおコメントは複数行に対しても有効で /* comment1 comment2 comment3 */ のように3行をまとめてコメントにすることも出来る。 単にコメントを書くだけでなく、一時的に無効にしておきたいコードに対して用いることにも使える。

CSSの勉強 3 : どこにCSSを書いておくか

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 CSSをどこに記述しておけばよいか  CSSをただファイルに書いていっても、それだけではなにもならない。ブラウザの方にCSSを適用して表示させるには、HTMLファイルの方にCSS読み込みの設定を書いておく必要がある。 CSSを適用する3つの方法 CSSを読み込んで適用するのにはいくつか方法がある。以下、1つずつ取り上げていく。 CSSファイルに書いておく CSSを書いて次のファイルとして保存する。 style.css そして、それを適用するHTMLファイルの<head>タグ内に  <link href="style.css" rel="stylesheet" type="text/css"></link> という記述を書いておく。ここではHTMLファイルとCSSファイル(style.css)は同じディレクトリに置いておく(パスは要確認)。  HTMLファイルをブラウザで開けば、CSSに書いたスタイルが適用される(はず)。 HTMLファイル内に<style>タグで内部スタイルシートとして記述する  こちらの方法はHTMLファイル内にCSSに関する記述を書いておくというもの。ファイルが1つで済むので管理が楽ですね、というわけでもなく、複数のHTMLファイルに1つのCSSファイルを適用するという管理には向かないと思われる。始めは楽だけど、拡張していくと後々めんどうになりそう。  方法としてはHTMLファイルの<head>タグ内に<style>タグを作り、その中にCSSに関する記述をする。 HTMLの各要素にStyleとして個別に適用する この方法ではHTMLの各要素に対して以下のように個別にCSSを適用する。  <h1 style="color:blue;">タイトル</h1> 個々の要素に設定出来るためカスタマイズ性が高い。その反面、後から一括して設定を適用す

gnuplot : 各種オブジェクトを配置するときの座標について(Coordinates)

イメージ
gnuplotでの各種オブジェクト配置の座標について gnuplotでラベルを配置するときに例えば gnuplot> set label 1 "test label" at 3, 5 のようにするとx, y座標で(3, 5)の位置にラベルが配置されます。  この指定方法ではグラフを描いている途中でx, y座標範囲を変更すると、配置したラベルもそれに合わせて位置が変わってきます。それで問題ない場合もありますが、グラフ上で決まった位置に配置しておきたい場合はこれでは不便でしょう。この場合は、"at"で位置を指定する際に、x, y座標以外の座標を用いるよう指定することで対処出来ます。 gnuplotで用いることの出来る座標指定の種類  "at"において指定出来る座標の種類をリストアップすると以下のようになります。 first : 第1軸のx, y座標(デフォルト) second : 第2軸のx, y座標 graph : プロットエリア内の位置を基準( 縦横それぞれ0〜1の範囲 :[備考] 範囲を超えた指定も可能だが、描画範囲内に収まるようにしないと表示されない ) screen : プロットスクリーン内の位置を基準( 縦横それぞれ0〜1の範囲 :[備考] 範囲を超えた指定も可能だが、描画範囲内に収まるようにしないと表示されない ) polar : 極座標プロットで配置するときに用いられる character : フォントサイズを元にした位置指定( 1文字が1という単位 :[備考] そのときのフォントサイズに依存 )  この中でよく用いられるのはデフォルトでもあるfirstとgraph、screenでしょう。 graphとscreenの違い  graphとscreenはプロットエリアを基準にするかスクリーンを基準にするかの違いで、比べて見るとぱっと見ではあまり差が無いように見えます。以下にgraphとscreenで縦横0.1ずつ変化させていったときの位置の参考となるグラフを作って置いたので見比べてみて下さい。 graph座標 screen座標 縦横で別々の指定を用いることも出来る at graph 0.5, 0.2 とすると、これはプ

CSSの勉強 2 : そもそもCSSとは

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 CSSとは Cascading Style Sheets のこと。スタイルシートと呼ばれるものの一つ。CSS以外のスタイルシートもあるが、CSSが最も知られている模様。 スタイルシートとは HTMLやその他マークアップ言語など構造化された文書のスタイル(表示方法)を制御するもの。 (余談 : オフィスソフトのWordなどでもスタイルによる表示の設定が行える) Webページの場合、ブラウザによって表示されるのでCSSもブラウザによって解釈されて表示に適用される。そのへんの詳しい仕組みは…、まぁ複雑そうなので調べるのはまた今度。

CSSの勉強 1 : 基本の書式

 このブログ記事は個人的な勉強のメモ書き、覚え書き程度のものです。内容の正確性などあまり当てにならない面が多いので、ちゃんとしている情報を知りたい場合は他のサイトを探して下さい。 CSSの書き方の基本 基本的は selector () declaration (宣言) から構成される。 例 ; p {   color : red;   font-size : 14px; } ここで pがselector {}で囲まれた部分がdeclaration(上の例ではdeclarationが2つ) 例では改行でdeclarationが分かれているが、書式としてはセミコロン ";" で分かれている。なお最後の行(項目)でもdeclarationはセミコロンで終わらせるようにする。 declarationについて 個々のdeclarationは property value のセットで構成され、両者はコロン ":" でつなげる。 上の例では colorがproperty、redがvalueとなっている。

gnuplotの小技 : マウスで示した位置にラベルを貼る方法(間接的に)

イメージ
gnuplotのマウス操作によるラベルなどの任意位置への設定  gnuplotはマウスで操作出来ることはあまり無く、ラベルなどのパーツを ドラッグ・アンド・ドロップ で移動することは出来ません。一旦プロットを画像ファイルとして出力し、その後に画像編集ソフトを併用して使うことで出来なくも無いですが、後から元のプロットを修正する必要が出ると編集し直すことになるのでめんどうです。    そこで今回はプロットしたグラフの任意の位置をマウスで指定し、そこにラベルを貼る(設定する)方法を紹介します。先に書いたように直接ドラッグ・アンド・ドロップで移動することは出来ないため、今回紹介するのは間接的に行う方法です。ここではラベルの操作のみ扱いますが、座標で位置を指定するパーツなら応用して使える方法だと思います。  今回の話はQt、Wxt、X11のプロットウィンドウが表示される端末を対象にしたものです。 マウス操作でラベルを貼り付ける ラベル貼り付けのおさらい  グラフ上の任意の位置にラベルを貼るには簡単には以下のようにします。 gnuplot> set label "test label" at 3, -2 ここではx, y座標で(3, -2)の位置にラベルを設定しています。 簡単なラベルの貼付け   ラベル位置の調整は、目視で当たりを付けて座標値を設定し、トライアンドエラーで微調整していきます。実際、これだと少々手間がかかります。 ラベル任意位置に貼り付ける方法  では、ラベルを任意位置に貼り付ける方法の説明を行って行きます。gnuplotでは直接マウス操作でラベルを貼り付けたり移動したりは出来ないため、それを次に示す手順でそれを行っていきます。 ラベルを貼りたい、移動させたい位置にマウスカーソルを移動 マウスカーソルで指し示した位置の座標をダブルクリックで取得 取得した座標をラベルの座標値に設定 再度プロットして設定を反映 マウスのダブルクリックによる座標の取得  今回の話の肝は任意位置の取得になるわけですが(取得さえ出来れば後は座標設定のことろにペーストすればいい)、その話は以前の記事で紹介しています。 gnuplot : グラフウィンドウでマウスをダブルクリックするとその座標がコピー出来る  話としては

gnuplot : 入力待ち、時間経過待ちに用いるpauseコマンド

Pauseコマンド gnuplotには何かしらの入力待ち、もしくは時間経過待ちを作るための pause というコマンドがあります。 基本的な使い方  基本的には pause 3 とすると3秒の時間経過待ちとなり、この後に書かれたコマンドはその時間が経過した後に実行されます。  また入力待ちの場合は pause -1 とします。この場合は端末上でエンターキーが押されるまでそこで処理が止まります。 使いどころ  pauseコマンドの使いどころとしては、例えばループ処理で連続してプロットするとき、そのままではループが回るのが早すぎるといったときに"pause 0.1"を入れておけばそこで0.1秒の待ちを発生させられます。  また"pause -1"で入力待ちを作るのは、スクリプトファイルでプロットした時にプロットウィンドウを残すことにも使えます。 pauseが実行される際に端末にテキストを表示させる pauseコマンドでは最後に文字列、文字列変数を書いておくと、コマンドが実行された際にそれが端末に表示されます。何かしらの説明プロットでメッセージを表示させるなどに使えるかと思います。またはループ内の変数の変化を表示するなどにも。コマンドとしては以下のようになります。 pause 5 "wait 5 seconds" マウス操作の待ちも作れる  pauseコマンドではここまで説明したことの他に、プロットウィンドウ上でのマウス操作での待ちを作ることも出来ます。今回はそれについては説明はしないでの、詳しく知りたい場合はドキュメントの方を参照して下さい。 gnuplot関連のブログ記事

gnuplot : プロットウインドウを複数開いて使う方法

イメージ
プロットウィンドウについて  gnuplotで端末にQt, Wxt, X11を用いると、プロットしたときプロットウィンドウが開いてそこにグラフが出力されます。通常はプロットウィンドウを開いた状態で新たにプロットすると、そのプロットウィンドウに新しいプロットが上書きされます。これはこれで普通の動作なわけですが、消える前のプロットをもう一度確認したい場合は再度そのプロットコマンドを実行する必要があります。では、プロットウィンドウを開いたまま、別のウィンドウに新たにプロットするにはどうすればいいでしょうか?というのが今回の話です。 複数プロットウィンドウを開いた状態 複数のプロットウィンドウ 出力端末のオプション  gnuplotでは出力端末の設定を gnuplot> set term qt のようにしますが、端末名(ここではqt)の後ろに番号を付けることで、複数のプロットウィンドウを作成することが出来ます。"term qt <n>"の"<n>"に番号を入れて指定する形となります。このオプションがあるかどうかは出力端末にもよるのですが、簡単に調べた限りではQt、Wxt、X11にはありました。 複数プロットウィンドウを開く方法  さて、実際に番号を付けて指定、プロットするには gnuplot> set term qt 1 gnuplot> plot x とします。これで1つ目のプロットウィンドウにプロットされます。そして、2つ目のプロットウィンドウにプロットするには続けて gnuplot> set term qt 2 gnuplot> plot sin(x) とします。これで1つ目のプロットウィンドウが開いたまま、新たに2つ目のプロットウィンドウにプロットされます。さらにプロットウィンドウを増やしたい場合は、ここまでと同様に gnuplot> set term qt 3 gnuplot> plot 1/x としていきます。ここまで番号は1から順番に2→3と増やしましたが、他と被らなければ適当な番号に割り当てることが出来ます。 すでに開いてあるプロットウィンドウに新しくプロット  さて、複数プロットウィンドウ

gnuplotのrgbcolorでの色指定でハマりやすいところ(rgbcolorとlinecolor <n>)

イメージ
今回はgnuplotの機能の解説ではなく、使っていてちょっとハマりやすい点を書いておきます。 rgbcolorで設定しているつもり gnuplotでプロットの線or点の色をlinecolor、lcで設定するケース。ここでrgbcolorによる指定をしようと以下のコマンドを書いたとします。 gnuplot> plot x linecolor 0xff0000 本来ならここではプロットは赤い線(0xff0000)になるはずですが、プロット結果は以下のようになります。 赤い線となるはずが黒い線になってしまっています。色指定は0xff0000なので、これも赤色のはず。では何が間違いだったかというと、コマンドをよく見直してみると linecolor 0xff0000 の色指定の部分に"rgbcolor"(もしくは"rgb")が入っていません。ちゃんとしたコマンドで書き直せば gnuplot> plot x linecolor rgbcolor 0xff0000 となり、この出力結果は以下のように指定通り赤い線としてプロットされます。 linecolor <n>という書式  さて、RGB値で色指定する場合の注意点は分かったわけですが、ではなぜ"rgbcolor"が無くてもプロットがエラーも無しに通ったのでしょう?  これはgnuplotでは linecolor <n> という色指定も出来ることに関係しています。  gnuplotではいくつかある基本の色を番号で指定することができます。"<n>"というのはその番号のことで、例えば以下のような指定となります。 gnuplot> plot x linecolor 1 ここでは以下のように紫色の線となります。 コンピューターは指定した通りにしか解釈しない  RGB値である"0xff0000"は、実際にはこれだけでは単なる16進数の数値でしかありません。たとえ自分が「"0xff0000"は赤色だ」と思っていても、それはコンピューター側にはまったく関係がないこと。数値として渡されたのならあくまでも数値としてしか解釈されません。

gnuplot : RGBでの色指定で16進数による指定を行う方法(数字の頭に"0x"を付ける)

イメージ
16進数での色指定  以前、以下の記事でrgbcolor variableの解説をしました。 gnuplot : rgbcolor variableによる各プロット点の配色について(RGB値についてなど) このとき、RGBの値を10進数として扱う方法で説明しました。そこでは16進数で表された色(red : FF0000 など)の値を10進数に変換してgnuplotに渡すという方法を取りました。このときは (※マニュアルを読むと10進数以外の指定方法もあるように読めるのですが、詳細は調べ切れていません) と書いたのですが、その後調べたところ16進数のままでも値を渡せることが分かりました(16進数以外に8進数でも渡せます)。 16進数数値による色指定  gnuplotで16進数で数値を書き表す場合は、その数値の先頭に"0x"または"0X"を付けます。例えば、ff0000では0xff0000とします。  gnuplotで16進数をこのように表すのは、C言語での書き表し方から来ているようです。その他のプログラミング言語でも16進数をこのように表記するものは多いので、理由はともかくそういうものだと考えればいいでしょう。 16進数で色指定するメリット  16進数で色指定出来ると、カラーピッカーで取得したRGB値をそのまま用いることが可能となります(#ff0000となっている場合#を0xに置き換える)。  それと数値ではなく文字列"0xff0000"として色を指定する方法もありますが、数値のまま扱えば演算による色の作成も出来るという利点があります。 プロット例 基本的な例 16進数で色を指定する場合の基本は以下のようになります。  gnuplot> plot x linewidth 10 linecolor rgbcolor 0xff0000 データファイルのプロット 別の例として、以下のデータファイルをプロットしてみます。 1 black 0x000000 2 white 0xffffff 3 red 0xff0000 4 lime 0x00ff00 5 green 0x008000 6 blue 0x0000ff 7 gray 0x808080 8 yellow 0

[料理メモ] 炊き込みご飯に再チャレンジ

前回の炊き込みご飯  前回、炊き込みご飯を作ったとき、硬い炊き上がりになってしまったということがありました。 [料理メモ] 炊き込みご飯が固い… 再チャレンジ  そのときは再チャレンジするのはいつになるか分からないと書きましたが、あれから一ヶ月も経たないうちにその機会が来ました。まぁ再チャレンジと言っても吸水をしっかりやるくらいなわけですが。 3合用の炊き込みご飯の素で4合分炊くミッション  ただ今回の条件として新たに加わったのが、お米3合用の炊き込みご飯の素で4合分作るというミッション。これについてはネットで検索した結果、醤油と砂糖、それと若干のサラダ油をちょい足しして調整出来るとのこと。個人的には旨味も補いたいので鶏肉も入れたいところだったけど、あいにくと冷蔵庫には鶏肉は無かった。 4合炊きするときの追加の調味料 追加した調味料の分量は 醤油 大さじ1杯 砂糖 小さじ1杯 サラダ油 小さじ1杯 準備の段階で砂糖はよく溶かしておきたいので、ここで調味料を合わせて若干の水を入れて砂糖をよく溶かしておいた。  余談なのだけど、うちにある計量スプーン、3つのサイズがセットのものでてっきり大さじ、中さじ、小さじと思っていた。けれどスプーンそれぞれの分量を見てみると大さじ、小さじ、小さじ1/2となっていた…。これは…、小さじ1杯のつもりで入れていたのは実際はその1/2しか入っていなかったのか…。  ただこのセットになってる計量スプーンは洗うのが面倒なのであまり常用してはいないものだったのがせめてもの救い。 炊飯手順  とりあえず、吸水については洗い物やらなんやらをしてる間に行ない、吸水後一旦ザルに開けて水を切っておく(吸水時間は30分くらい)。 再び炊飯釜に戻しそこに炊き込みご飯の素を開ける。ここで混ぜたくなるのだけど、具材はお米の上に来るようにするとのことなので、混ぜたい気持ちは我慢。そして追加分の調味料も加えて、水を炊飯釜の4合分の線まで入れる。具材を米の表面に均一に散らばるように均して炊飯器にセット。ここで炊飯器のモードを炊き込みご飯用にセットしておく(前回はしていない)。最後は予約炊飯などせず間髪入れずに炊飯ボタンをON。炊き込みご飯モードだと炊飯時間がやや長くなるみたい。加熱制御も変わるのかも知れないけど詳しく知らない。  そうし

[雑談] オフィスドキュメントにペタペタと写真を貼っていくと重くなる

 オフィスソフトで作るドキュメントにあまり写真を貼ることは無いのだけど(多くても2, 3枚程度)、ここんとこ適当に書いているドキュメントでペタペタと画像を貼っていったらファイルサイズはやたら大きくなるしソフトの動作は重くなる。  以前もこういうことがあって、プレゼン用ドキュメントが数十MBになってファイルを開くだけで時間がかかったり。結局、これは写真というか画像ファイルをそのまま貼ってるからこうなるのであって、あらかじめサイズを小さくしておくとか軽量化すれば解決はする。  なんてのがもう10年以上前にやってたときの話で、最近そういうこともやらなくなりパソコンやソフトの性能も上がって来ているので大抵のことは特に意識せずに済んでいた。  ただ数枚ならともかく数十枚の写真ともなると、実サイズのまま貼り付けるとやっぱり厳しい。それでも最近だとオフィスソフトの方で貼り付けた画像の軽量化が出来てしまうので、あらかじめ写真を小さくしておく手間も要らない。  このへんのノウハウ、ちょっと忘れかけてたけれど、久々にそんなことを思い出した今日この頃。

gnuplotで何らかの計算をするとき、その結果に浮動小数点を期待する場合は注意が必要

イメージ
gnuplotでの計算  gnuplotで以下のような計算をするとします。 1/5 この答えは"0.2"となるはずです。しかし実際にgnuplotで以下のように計算すると gnuplot> print 1/5 このときの出力は"0"となってしまいます。 整数で計算すると結果も整数で返される  gnuplotでは計算で整数のみを用いた場合は、その結果は整数で返されます。なので、結果が浮動小数点で表される数になる場合、小数点以下は切り捨てられて整数部分だけ返ってくることになります。 浮動小数点となる結果が返ってくるようにするには  計算結果で浮動小数点となる値が返ってくるようにするには、計算式で用いる数値を浮動小数点のものを用います。例えば gnuplot> print 1.0/5.0 とすれば"0.2"という結果が返ってきます。また省略して gnuplot>print 1./5. とも書くことができます。 まとめ  計算するとき以上のことを失念していると、おかしな結果のままグラフが出来たりしてしまいます。上の例のように結果が"0"となってしまうと間違いに気が付きやすいですが、例えば"3.2"という値が"3"となってしまっていると正解に近い値が返ってくるため間違いに気が付きにくいでしょう。  表計算ソフトや電卓ソフトを使うときはこのようなことは意識しないで済むことが多いですが、gnuplotはプログラミング言語寄りなので使う際はそのへんしっかり意識して使う必要があります。 追記 2019年5月9日  データファイル内の数値については、値が整数で記述してあっても浮動小数点として扱われるようです。ドキュメントの方がいまひとつ読み切れていないのですが、簡単に試した限りでは整数値で記述されているデータファイルで"using 1:($2/$3)"のようなプロットをしても浮動小数点とした計算がされました。 gnuplot関連のブログ記事

[料理メモ] 粉寒天を水から溶かした場合にダマになり難いかを試してみる

イメージ
 前回の粉寒天を使った牛乳寒作り。 [料理メモ] 牛乳寒、寒天を倍にして再チャレンジ  結構いい感じで出来たのだけど、粉寒天が若干ダマになって固まるときにムラが出てしまった。そこで今回は前回の反省点を生かして粉寒天をお湯ではなく水に入れてよく混ぜてから煮溶かすことにした。 2019年5月7日のレシピ 粉寒天 : 小さじ3杯(すり切りまで) 水 : 200g 砂糖 : 50g 牛乳 : 300g  前回との違いは粉寒天が小さじ3杯という点(この前は4杯)と、砂糖が50gという点(この前は60g)。粉寒天が前回より少ないのは、単に粉寒天の残りが少なくなって来ていたため。砂糖を若干減らしたのは、気持ち甘さを抑えても甘さは十分かを確認したかったため。  本来なら粉寒天の溶け具合を重視するなら前回と同量の粉寒天を使うべきなのだけど、残りが少ないならどうしようも無いのでそれはまた今度買ってきたときに試すことに。  さて工程としては、まず分量の水に粉寒天を全量入れてよく混ぜる。全然溶けない(寒天が溶ける温度ではないのでこれは当然)。溶けないのだけど、まったくダマにならずに細かい粒が水の中に散らばっているという感じ。これなら均一に溶けそうなので結構期待出来るかも。そして、この状態で数分放置。  そしてガスレンジに点火して、ゆっくり混ぜながら煮溶かしていく。ここでもダマの姿は無い。狙い通り。ただ混ぜていたオタマの先に若干ジェル状の寒天が付いてきてしまっていた。うーん…。  それはともかく、粉寒天を煮溶かした後は前回同様に牛乳と砂糖を加えていく。最後は固めて完成。 仕上がり  牛乳寒の固さは粉寒天小さじ4杯のときよりやや柔らかめ。切ったあとしばらく放置しておいたら、固まり切らずにしみ出した液体がちょっと出てきてしまっていた。しっかり固めるならやはり小さじ4杯は必要かなと。  砂糖を減らしたことで甘みがどうなったかについては、食べてみてもほぼ前回と同じくらいと感じた。まぁ60g→50gでそう大きく減らしたわけでもないのでそんなものかと。 まとめ  さて、粉寒天をダマにせずに溶かすことについてはこれでほぼ達成出来たと思う。この点は狙い通りといったところ。1つ課題としては、混ぜていたオタマの先に寒天が付いてしまったという点。また洗い物をしてると

[雑談] Firefoxのアドオンが全部無効化されてしまったという話題

 Firefoxで使っているアドオンが全部無効化される、アドオンのインストールも出来ないという不具合が起きていたようで、多くのユーザーが巻き込まれて結構騒ぎになってました。一応、現時点(2019年5月6日)では緊急の対応とアップデート(66.0.4リリース)がされたようです。 Add-ons disabled or failing to install in Firefox | Mozilla Add-ons Blog  まぁ詳しい話はIT系のニュースサイトでも読むことにして、自分の環境ではどうだったかという話。  実際、自分のところの環境では特に何も起きませんでした。アドオンは17個ほど入れているので不具合が出てもおかしくない状況だったと思うんですがそうでもなく。Firefoxを起動し直すと不具合が起きるという話も出てたので、それも試してみましたがそれでもなんともなく。  不具合が起きなかったことで関係ありそうなこととしては、環境がUbuntu 18.04.2 LTSでかつディストリビューションで配布されているFirefoxを使っているという点。ただ、Linuxの各種ディストリビューション配布のパッケージも例外ではないという話もあったので、本当に関係してるかどうかはまだなんとも言えませんね。  たまたま何らかのタイミングで不具合を回避してただけかも知れないわけで。  とりあえず現時点の情報だけではまだなんとも言えないので、今後のMozilla側の調査結果とか関連ニュースなんかを見ていくことにします。

Bash(シェル)のキーボードマクロ機能

Bashのキーボードマクロ機能  Bashのドキュメントを読んでいるとき、キーボードマクロという機能があることに目が止まりました。マクロというとおそらくはコマンド操作の自動化が出来そうなので、これは便利そう。ということで、このキーボードマクロについて簡単な説明と実際に使ってみた感想を書いていきます。 GNU Bash manual Keyboard Macros (Bash Reference Manual) キーボードマクロとは  キーボードマクロと言ってもBashのこの機能はテキストを打ったり編集したときのキーストロークを再現するものではなく、実行したコマンドを再現する機能となってます。 キーボードマクロの操作  キーボードマクロに関する機能のうち、主に使うものは以下の3つ。 C-x e : 記録したキーボードマクロの実行 C-x ( : キーボードマクロ記録の開始 C-x ) : キーボードマクロ記録の終了 以下、キーボードマクロはマクロもしくはマクロ機能と省略して書いていきます。 使い方  マクロを使うには、まずどこからのコマンドを記録するかを指定してやる必要があります。この場合「C-x (」というキーバインドによりマクロ記録が開始されます。なお、このとき画面上には記録中などとは表示されないです。その状態で記録したいコマンドをいくつか実行していきます。記録させたいコマンドが終わったら「C-x )」でマクロ記録を終了します。  そして「C-x e」で記録したマクロのコマンドが実行されます。 マクロを使う利点  いくつかのコマンドを自動で実行するときにマクロ機能は便利に使えると思います。コマンドを打つ毎にヒストリーを遡ってコマンドを探してくるという手間も減らせるでしょう。 注意点  マクロ機能を使う上での注意点としては 記録の開始、終了が分かり難い 記録されているマクロの内容が確認出来ない 他の端末で使っているBashにはマクロは引き継がれない Bashを終了すると記録したマクロは消える 「C-x e」と間違えて「C-x C-e」を押すとエディタが立ち上がってしまう  ただドキュメントを読むと記録したマクロを書き出す機能はあるようなので、それを使えばマクロを確認したりすることは出

[雑談] Bashを使ってるとき、キーボードだけで画面上のテキストをコピーするのって…

 Linuxを使ってるとき、何かしらのコマンドの出力結果のテキストをマウスで選択コピー、そして他のところで貼り付けというのをよく行う。ただキーボードやマウス操作を行ったり来たりするのも面倒で、 「こういうのはキーボード操作だけで出来ないものだろうか?」 とよく思ったりしていた。  ただ、それを行うにしても何をどう調べればいいのか見当がつかなくて毎回そのまま放置。それでもちゃんと調べた方がいいだろうと思って調べたのが今回の雑談の話。  で、ここ一ヶ月くらいFirefox(ブラウザ)のタブにシェルであるBash( Wikipedia )のドキュメントを開きっぱなしにして、気が向いたときにそれっぽいところをかいつまんで読んだりしていた。それで分かったこととしては、端末画面に表示されているテキストを扱ってるのは、シェルではなくて出力端末の方ということ。  Bashの方がテキスト操作で受け持ってるのは、あくまでもその時に入力を編集しているライン上のテキストになるっぽい。それとヒストリー履歴くらい。なので、画面上に流れたテキストというのは出力端末の方の受け持ちとなる、たぶんそんな感じ。  あれこれ悩んで混乱してたのは、自分の中でシェルと出力端末がそれぞれどういう役割を担っているのかの切り分けがちゃんと出来てないかったのが原因だったと思われる。 (まぁ、まだ全然分かっちゃいないんですが)  で、出力端末ならキーボードだけで画面上のテキストをコピーして来られるかというとそうでもないらしい。まぁそのへんは出力端末側に備えられている機能によるのだろう。   それとシェルと出力端末の間で機能するGNU Screen( Wikipedia )というのもあって、これはキーボード操作でテキストコピーが行える機能が備わっている模様。  今回までで分かったのはそんなところまで。それでもキーボードだけで操作していくには、何をどうすればいいかが見えてきた気がするのでようやく一歩前進したかなと。

gnuplot : rgbcolor variableによる各プロット点の配色について(RGB値についてなど)

イメージ
はじめに   今回の話は、データファイルの各ポイント点にそれぞれ個別の色を配色する方法(rgbcolor variable)についての解説になります。それと合わせて、始めにgnuplotの色を扱う時の方法について簡単な説明も付け加えていくことにします。 gnuplotでの色表現について  gnuplotでプロット点、関数の線、バックグラウンドなどに色を指定する時、複数の方法を用いることが出来ます。簡単に説明すると 各色に割り当てられている番号(出力端末に依存)で指定する方法 色名(redやblueなど)で指定する方法 RGBについて各色を2桁の16進数で表した文字列で指定する方法 上記のものを10進数で表したもので指定する方法 透明度も合わせて指定する方法 などがあります。 rgbcolor variableについて  上で説明したように色を指定する方法は各種ありますが、その中で自由度が高いものとして rgbcolor variable という指定方法があります。これは色については10進数の数値で指定され、その数値はデータファイルの列から取得するというものです。 (※マニュアルを読むと10進数以外の指定方法もあるように読めるのですが、詳細は調べ切れていません) (追記 : 2019年5月13日 - 16進数での指定方法 gnuplot : RGBでの色指定で16進数による指定を行う方法(数字の頭に"0x"を付ける) ) rgbcolor variableを使った一例  使い方としては "using" でプロットに用いる列を指定するとき、最後に色を表す数値を指定する形となります。  二次元プロットの場合、"using" で三列目を追加して指定することになります。 例 : plot test01.dat using 1:2:3 with points lc rgbcolor variable 同様に三次元プロットでは四列目を追加して指定することになります。  では実際に rgbcolor variable で色を指定する場合に、データファイルにはどのような値が記述されていればいいでしょう?これを把握するには24bitで表記するRGBの値を理解しておく必要がありま

スポンサーリンク