質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
gnuplot

gnuplot(ニュープロット)は、2次元や3次元のグラフ作成ができるソフトウェアです。さまざまな数式やデータ集計などのグラフを描写することが可能で、特に2次元グラフを描画する機能は強力です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

1回答

4046閲覧

gnuplotでファイルを読み込み3次元プロットをしたい

morrin

総合スコア0

gnuplot

gnuplot(ニュープロット)は、2次元や3次元のグラフ作成ができるソフトウェアです。さまざまな数式やデータ集計などのグラフを描写することが可能で、特に2次元グラフを描画する機能は強力です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2020/05/18 04:02

前提・実現したいこと

gnuplotを使用して計測データファイル(.txt)を読み込んで3次元プロットを実現したいのですが,
png画像が出力されるものの,表示がうまくされません.

発生している問題

読み込むデータdata.txt
(4,5,6列目をそれぞれx,y,zとして読み込み,3次元プロットをしたい)

data.txt

1L1 01 5 +015.9087 +000.1231 +001.3467 -086.8069 -001.0910 +001.7211 0 2L1 02 5 +004.5082 +007.3622 +001.6852 -175.5934 +001.5095 -130.3529 0 3L1 03 5 +015.9825 -000.6152 -000.8453 -092.3766 +003.5923 +092.2010 0 4L1 04 5 +008.7543 +008.7682 +001.7893 -038.0283 +000.0706 +000.5298 0 5L1 05 5 +014.3994 +010.0375 +001.9768 -107.9829 +001.0440 -010.7809 0 6L1 06 5 +015.0374 +000.9280 -004.1744 +179.7668 +042.0604 +001.4829 0 7L1 07 5 +014.3292 +001.0223 -004.9900 -088.6648 +005.5896 +038.6660 0 8L1 08 5 +013.6677 +000.9259 -005.3174 -013.6437 -035.1620 +007.3262 0 9...

data_plot.plt

data_plot.plt

1set grid 2 3#凡例の位置 4set key center top 5 6#xyz軸のラベル設定 7set xlabel "x[mm]" 8set ylabel "y[mm]" 9set zlabel "z[mm]" 10 11#png画像の作成 12set terminal png 13#出力先のファイルを指定 14set output "data_plot.png" 15 16# プロットデータからグラフ作成 17set datafile separator " \t" 18 19set xrange [-100:100] 20set yrange [-100:100] 21set zrange [-100:100] 22set view equal xyz 23 24# ファイルを読み込みプロット 25splot "./data/data.txt" using 4:5:6 title "links" with linespoints ,\

試したこと

以下のコマンドで実行

gnuplot dataplot.plt

実行して画像が出力されるもののプロットがうまくいかない
枠が表示されるものの点が表示されない

+が入っていることが問題かとも考えましたが,回避する方法も不明なため質問させていただきました.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

与えられたデータとスクリプトには2点問題があります。

1つ目は、

set datafile separator " \t"

で空白" "とタブ"\t"をセパレータとして指定されていますが、この空白" "が全角スペース" "になっています。

2つ目は、この全角スペースを半角スペースに変更し、

set datafile separator " \t"

を用いたとしても、'data.txt'の2列目と3列目の間が、タブではなく6つのスペース" "で区切られてしまっています。6つのスペースは、6つの区切り文字として認識されてしまうため、想定している列数がずれてしまっています。
(実際、"using 4:5:6"ではなく、"using 9:10:11"とすれば動作します)

解決方法としては、'data.txt'の2列目と3列目の空白をタブに直すか、
あるいは、この'data.txt'をそのまま用いるのであれば、

# set datafile separator " \t"

のようにコメントアウトすると期待した図が描けると思います。明示的に、

set datafile separator whitespace

としてもよいと思います。

投稿2020/11/03 05:13

binz

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問