scilabで離散的な階段状のグラフを描くには、どうすればいいのですか?
例えば、1ポイントずつ階段状に描写したいと思って作った以下のグラフは、点と点をまっすぐつないだだけのグラフになってしまいました。

X=0:1:4;
Y=[2,1,6,4];
plot(X,[Y(1) Y])

このQ&Aに関連する最新のQ&A

A 回答 (2件)

既に、質問者さんは、解決したかもしれませんが、他の方(離散値のプロットをmatlab風に行いたい人)が同じ問題で悩むかもしれないので、1つの解決方法を以下に示します。



h = gca(); //現在の座標(軸)を得る。
h.children.children.polyline_style = 2; //下位へのプロパティをたどり、polylineのスタイルを変更

で出来ると思います。
同じ座標に、2つ以上のプロットを行っている場合は、多分

h.children(1).children.polyline_style = 2; //現在の座標上の最後のプロット
h.children(2).children.polyline_style = 2; //現在の座標上の1つ前のプロット

だと思います。

※この場合、恐らく
h: 座標
children(x): 同じ座標上の複数のプロット
children(x).children: polylineという項目
だと思いますが、詳細は、参照URLを読んでみてください。

参考URL:http://www.scilab.org/product/man/axes_propertie …
    • good
    • 0

つまり、


X=[0,1,1,2,2,3,3,4];
Y=[2,2,1,1,6,6,4,4];
plot(X,Y)
てなればよい。

たとえば、
X=0:1:4;
Y=[2,1,6,4];
X2 = [X X(1:$-2)];
X2(1:2:$) = X(1;$-1);
X2(2:2:$) = X(2:$);
Y2 = [Y Y];
Y2(1:2:$) = Y;
Y2(2:2:$) = Y;
plot(X2, Y2)
とか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「データをプロットする」の意味は?

ユーザーアンケートや属性などのデータをエクセルなどで分布図やポジショニングマップにまとめる時に「データをプロットする」と言いますが、この言葉の正確な意味は何なんでしょうか?
辞書で調べるとプロットは「筋書き、構成」などと出てきますが、「データをプロットする」はちょっと違う意味のように思います。
「データをプロットする」=「分布図やポジショニングマップにデータを当て込むこと」と考えてよいのでしょうか?

Aベストアンサー

名詞ではなく、動詞のplotですね。プログレッシブ英和中辞典では、《数》
〈点を〉座標で示す, 〈曲線を〉(決めた点を結んで)描く, 〈数式を〉曲線で表す, グラフで計算する、とあります。
実務の現場では、書かれたように“データを当て込む(入れ込む)”という
意味合いに用いることが多いのも事実だと思います。

Q[TeX,DVI,PS,PDF]

エラーが出て読み込めないepsファイルがあります。
どうすればいいでしょうか?
そもそも「endobj」とは何でしょうか?

** WARNING ** Didn't find "endobj".
** WARNING ** Failed to include image file "./421.eps"
** WARNING ** >>[コマンドを打って正常にPDFに変換できるか確認しろというメッセージだが長くて質問文に入らないので略]
** WARNING ** pdf: image inclusion failed for "421.eps".
** WARNING ** Failed to read image file: 421.eps
** WARNING ** Interpreting special command PSfile (ps:) failed.
** WARNING ** >> at page="17" position="(178.298, 728.302)" (in PDF)
** WARNING ** >> xxx "PSfile="421.eps" llx=16 lly=22 urx=797 ury=986 rwi=7810 "

●GSViewはEncapsulated Postscriptの仕様で定義された「一行が255文字以下」を満たしていないという理由を掲示した上で表示してくれたが、dvioutでは画像は表示されなかった。

●EPSファイルは、VisioのオブジェクトをAdobe Distiller Jにかまして作られたものだと思われる。
ここでエラーが出るせいなのかわからないが
このEPSファイルが貼り付けられたTeXファイルをコンパイルしたDVIではすべて前にある画像(JPEGをjpeg2psでPSに変換して作成)となっている。

こうして出来た(?)dviファイルをdvipdfmxに通して作られたPDFではそれらの画像(同様の方法を用いて作られたPSファイルを含む)は表示されているが、該当エラーが発生した画像は表示されなかった。

エラーが出て読み込めないepsファイルがあります。
どうすればいいでしょうか?
そもそも「endobj」とは何でしょうか?

** WARNING ** Didn't find "endobj".
** WARNING ** Failed to include image file "./421.eps"
** WARNING ** >>[コマンドを打って正常にPDFに変換できるか確認しろというメッセージだが長くて質問文に入らないので略]
** WARNING ** pdf: image inclusion failed for "421.eps".
** WARNING ** Failed to read image file: 421.eps
** WARNING ** Interpreting special command P...続きを読む

Aベストアンサー

>[コマンドを打って正常にPDFに変換できるか確認しろというメッセージだが長くて質問文に入らないので略]

それで確認しましたか?ここが最重要です.
endobj というのは読んで字のごとく,
オブジェクトの終端でしょう.
この手のエラーがでるのはEPSそのものが不正,
もしくはghostscriptがPDFに変換できないということで
はっきりいうとそのEPSに問題があるのです.

dvioutはEPSを表示する際にghostscriptを使うので
dvioutでも画像が表示できないということなら
ますますgsで変換できないものなのでしょう.
(注意:gsで変換できないのと表示できないは別のことです
gsで表示できるものが他の形式に変換できるかは別問題です)

visio由来のEPSはいろいろと問題を起こします.
大抵の場合はフォント周りで問題が発生します.

Ditillerをお持ちならdvipdfmxを使わなければ
うまくいくかもしれません

もしかするとghostscriptのバージョンをあげたりすると
うまくいくかもしれませんが・・・根本的には
EPSそのものを修正するしかありません.

>[コマンドを打って正常にPDFに変換できるか確認しろというメッセージだが長くて質問文に入らないので略]

それで確認しましたか?ここが最重要です.
endobj というのは読んで字のごとく,
オブジェクトの終端でしょう.
この手のエラーがでるのはEPSそのものが不正,
もしくはghostscriptがPDFに変換できないということで
はっきりいうとそのEPSに問題があるのです.

dvioutはEPSを表示する際にghostscriptを使うので
dvioutでも画像が表示できないということなら
ますますgsで変換できないものなの...続きを読む

QMatlab:plotで特定の値だけをプロットしないことは可能ですか。

要素に0を含むデータをplotするときに、0だけ無視することはできますか。例えば、A=[1 2 3 4 5], B[125 594 0 575 435]をplot(A,B)とすると、第3番目のところで線が下に落ち込みますが、これを0を無視して第2番目と第4番目の要素を結ぶような図にしたいためです。ラインは必ず使ってプロットする必要があります。実際のデータ数は何千個あり、0が現れる位置もランダムなので、できるだけ簡単な方法があればお願いします。

Aベストアンサー

plot の前に,データをいじくるのが簡単でしょう.
たとえば,100 以上のデータしか選ばないのなら,

index = find(B>=100);
plot(A(index), B(index));

で大丈夫でしょう.

Q[platex] description環境でのitemのオプション([]内)で]という文字を使うには?

\documentclass[12pt]{jreport}
\begin{document}

単位は[mm]のように鍵括弧でくくって書くことにします

\begin{description}
\item[5[cm]の時]{5[cm]の時と表示されるのが望んでいる動作。実際は先の括弧で終わったと解釈されてしまい、5[cmの時]となってしまう。
バックスラッシュを使おうとしても「Bad math environment delimiter.」というエラーが表示されてしまう。どうするのが正解か?}
\end{description}
\end{document}

Aベストアンサー

\item[5[cm]の時]

\item[5{[cm]}の時]
としてください。

Q「plot not shown」の意味がわかりません

ダイヤモンドの鑑定書の「コメント」欄に、「plot not shown」と書いてあったのですが、どうゆう意味ですか?
「ダイヤモンド鑑定書の見方」みたいな本に、“コメント欄は何も書いていないのが普通。書いてあったら要注意。”と書いてあったので、心配になりました。
英語の知識がなくてお恥ずかしい限りですが、よろしくお願いします。

Aベストアンサー

plotを直訳すると「陰謀・策略」です。
plot not shownだと、示されなかった陰謀(策略)となりますので、「不審な点は見つからなかった」と捉えるのが妥当でしょう。

Q[Oracle]と [PL/SQL]の違い

[Oracle]と [PL/SQL]の違いを
コンピュータの知識がまったくない人に教えたいのですが、
どうすればよいですか。

Aベストアンサー

[Oracle]とはオラクル社により提供されているデータベースです。
[PL/SQL]とは、そのデータベースへアクセスするための(オラクル社により開発された)言語です。
即ち、[PL/SQL]を使用することにより、[Oracle]へデータ(情報)を書き込んだり、取り出したりすることが出来ます。
これを倉庫に例えれば、[Oracle]が、倉庫であり、この倉庫に品物を格納し、必要があれば、そこから取り出します。そうすると、[PL/SQL]は、倉庫の管理人と考えることが出来ます。私たちは、倉庫の管理人に依頼して、倉庫に品物を保管してもらい、必要があれば、また、管理人に依頼して、その品物を取り出してもらいます。

Qgnuplotデータを編集してプロット

gnuplotでデータを編集してプロットしようと思い、

set datafile separator ","
plot 'test.csv' using 1:($4*2) with lines

と打ちました。
これを、gnuplotに直接打つとうまくいくのですが、これをtest.pltというファイルに保存して、

call 'test.plt'

と、実行すると、

gnuplot> call 'test.plt'
gnuplot> plot 'PIDtorque.csv' using 1:(*2) with lines
                    ^
"test.plt", line 2: invalid expression

と、表示されます。
これは何故なのでしょうか?

宜しくお願いします。

Aベストアンサー

「$4」が「各データの 4番目の列」ではなく「引数に与えた 4番目の値」と解釈されているからです. gnuplot が実行しようとしている命令を見ればこのことは分かるはず.
でどうすればいいかは gnuplot のマニュアルで「call」を見ればわかると思うが, 「$」を重ねるか column を使う.

Qverilog HDLの[=]と[<=]の使い分け

現在Verilog HDLを勉強しており、ひと通り勉強は終わりました。
しかしブロッキング代入[=]とノンブロッキング代入[<=]の使い分けをどこまで暗記すれば良いのか分かりません。
皆様は、[=]と[<=]の使い分け、あるいはネット型、レジスタ型への代入をする際の区別をどのように暗記していますか?「このポイントを理解すれば大丈夫!」みたいなことを教えていただけると助かります。

今思いつく例としては↓のとおりです
・assign文では[=]を使用しなければならない。
・assign文の左辺は[ネット型]のみ
・case文のHPによって[=]を使用しなければならない。
・ http://veri.jp/ba_nba.html のHPの最後のほうで『ほかにも「assign 文では NBA "<=" が使えません」という誤った注意書き』と書いてありますが、この記述の意味がわかりません。
・回路記述ではダメなのに、シミュレーション記述では問題がない等等、、、
他にもfunction文やalways文の中で式を書く時にも困っています。

Aベストアンサー

> http://veri.jp/ba_nba.html
こんな良い解説ページを見つけたのに、なぜ質問しているのかがよく分かりませんが・・・。

まずassign文は継続的代入であって、ブロッキング代入でもノンブロッキング代入でもないので、
ブロッキング代入とノンブロッキング代入の使い分けという議論の対象外です。

また、ブロッキング代入とノンブロッキング代入はレジスタ型に対して使う、
継続的代入はネット型に対して使う、
となるため、型でブロッキング代入とノンブロッキング代入の使い分けなんて言う議論は最初からできないです。(どちらもレジスタ型が相手だから)


解説ページにも書かれていますが、
ブロッキング代入とノンブロッキング代入の違いは、
"右辺の評価" と "左辺への代入" が同時に行われるか、別々に行われるかの違いです。

たとえば、
a = x;
b = a;
としたとき普通のプログラミング言語のように、bもxになって欲しいなら、ブロッキング代入を使いますし、
bにxが代入される前のaの値が入って欲しいなら、ノンブロッキング代入を使うことになります。


always文でFFを生成するときは、その時刻においては代入前の値を参照したい(実際の回路を考えると代入後の値を参照できるのは次のクロックがやってきたときだから)ので、
ノンブロッキング代入を普通は使いますね。
(ブロッキング代入だとレーシング=記述順序で結果が変わってしまうという問題があるというのもありますが。)

それ以外(組み合わせ論理を作るalways、function、シミュレーション記述)は、
特に理由がなければブロッキング代入を使っています(変数を直ちに更新して欲しい場合がほとんどだから)が、
前述のノンブロッキング代入の挙動を理解した上でノンブロッキング代入が必要だと思ったなら
使っていけないわけではないです。

> http://veri.jp/ba_nba.html
こんな良い解説ページを見つけたのに、なぜ質問しているのかがよく分かりませんが・・・。

まずassign文は継続的代入であって、ブロッキング代入でもノンブロッキング代入でもないので、
ブロッキング代入とノンブロッキング代入の使い分けという議論の対象外です。

また、ブロッキング代入とノンブロッキング代入はレジスタ型に対して使う、
継続的代入はネット型に対して使う、
となるため、型でブロッキング代入とノンブロッキング代入の使い分けなんて言う議論は最初からでき...続きを読む

Qデータファイルをプロットする(gnuplot)

gnuplotを使ってデータファイルをプロットしたいのですがうまくいきません。
gnuplot初心者です。よろしくお願いします。

plot "gtest.dat"
とコマンドを打つと、
warning: Skipping unreadable file "gtest.dat"
No data in plot
となってグラフが表示されません。

ちなみにgtest.datの中身は、
1 20
2 60
3 80
4 60
5 100
です。

原因として自分で怪しいと思っているのは、
1.gtest.datの置いてある場所
  Cドライブの下の適当なフォルダにおいて実行したのですが、これがまずいのでしょうか。
  置く場所は決まっているのでしょうか。
2.DATファイルの作り方
  gnuplotの使い方の説明のサイトではいつもファイルのプロットの際、DATファイルが使われていたので
  自分もそれに合わせようとそたのですが作り方に自信がありません。
  メモ帳で作成し保存の際、拡張子を.datに変更しました。
  これでいいのっでしょうか。

長くなりましたが、よろしくお願いします。  

gnuplotを使ってデータファイルをプロットしたいのですがうまくいきません。
gnuplot初心者です。よろしくお願いします。

plot "gtest.dat"
とコマンドを打つと、
warning: Skipping unreadable file "gtest.dat"
No data in plot
となってグラフが表示されません。

ちなみにgtest.datの中身は、
1 20
2 60
3 80
4 60
5 100
です。

原因として自分で怪しいと思っているのは、
1.gtest.datの置いてある場所
  Cドライブの下の適当なフォルダにおいて実行したのですが、これがま...続きを読む

Aベストアンサー

1.について

カレントにデータをおいてない場合、フルパスで指定する
必要があると思います。

ためしにCドライブ直下にデータファイルを置いて

gnuplot> plot "c:\gtest.dat"

としてみてはいかがでしょう?
手元にはLinux版があったのでLinuxでだけ動作確認しましたが、
できそうですよ?


2.について

質問者様のデータそのままを使い、表示されることを確認できましたので、
質問者様のデータは正当なものです。
拡張子についてはなんでも大丈夫のようです。
ためしにgtest.hogeにリネームして試しましたが、ちゃんとプロットされました。

Q[プログラミング][画像処理]勉強法をおしえてください

プログラミングを勉強しようと考えています。

学生時代(10年前)にC言語を習い、実験で使う簡単なプログラムを作ったことがある程度です(ちなみに情報系の学生ではなく機械系です)。簡単な文法をなんとなく覚えている程度でC++?? JAVA?? オブジェクト?? な感じです。

直近でやりたいことは...
「画像から複数の円を探して中心の距離を測定する」です。
それができたら、他にも色々とやってみたいと考えています。

少ししらべてみたのですが、
・画像を読み込んでハフ変換と処理をするプログラムを作ればいいらしい。
・ハフ変換をするソースコードは探せばいくらでもありそう。
・ただソースコードがあっても実行させるスキルはない。
・パラメータは自分でいじりたい。
・OpenCVというのを使えば、画像処理がいろいろできそう。

ImageJというフリーソフトを使えばなんとなく円を検出するこてゃできたのですが、
距離を測ったり、円以外のものを検出したりと、自分でソースコードをいじれるレベルにはなりたいで
す。

そこで何から手をつけたら良いのか教えて頂けないでしょうか。
まずはCを思い出すところから?
それともJAVAとか他の言語を基礎から勉強する?
それともOpenCVとやらをとりあえずインストールしてみる??

アドバイスを頂けないでしょうか。よろしくお願い致しますm(_ _)m

プログラミングを勉強しようと考えています。

学生時代(10年前)にC言語を習い、実験で使う簡単なプログラムを作ったことがある程度です(ちなみに情報系の学生ではなく機械系です)。簡単な文法をなんとなく覚えている程度でC++?? JAVA?? オブジェクト?? な感じです。

直近でやりたいことは...
「画像から複数の円を探して中心の距離を測定する」です。
それができたら、他にも色々とやってみたいと考えています。

少ししらべてみたのですが、
・画像を読み込んでハフ変換と処理をするプログラム...続きを読む

Aベストアンサー

ご自分で答えを出されていますよね。
まずはまったくの初心者のつもりで必要な言語を基礎から勉強しましょう。
昔少しかじったからなどと基礎をおざなりにすると、必ずあとで後悔します。
OpenCVだってライブラリなのですから基礎言語が理解できていなければ使えません。
ベテランSEでも基礎マニュアルを見直すことは欠かしませんので
自分がやりたいことを早く実現したい気持ちはわかりますが焦らず1から学びましょう。
中途半端に手を付けると、事あるたびにこうして質問サイトに投稿するハメになりますよ。


人気Q&Aランキング

おすすめ情報