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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2841閲覧

Python Matplotlib 作成したグラフを結合

raspypy

総合スコア247

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/03/11 00:45

編集2020/03/17 07:43

##やろうとしていること

Matplotlibで作成した画像を結合させたい。
2つのグラフを1つの図に作成するプログラムを作っています。

##困っていること
プログラムを実行すると、次のような表示になってしまいます。
右画像の周辺に枠(X, Yとも0~1の範囲)ができてしまいます。

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

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

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

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

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

yureighost

2020/03/11 01:09

貼られているソースですと、 drawing1関数と二回呼んでいて、drawing2関数が呼ばれてないようですが、 その処理で大丈夫でしょうか。
raspypy

2020/03/11 01:11

失礼しました。質問のコードを修正しました。 実際は、drawing2が呼ばれていますが、結合できない状況です。
guest

回答1

0

ベストアンサー

サブプロット間の間隔などをあとから細かく調整するくらいであれば、最初から全てのサブプロットを set_axes() にて取得した方が良いのではないでしょうかね

https://matplotlib.org/3.2.0/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes

Python

1# データ取得 2sensordata = np.array(linedata) 3 4# 描画エリアの設定 5fig = plt.figure(figsize=(10,4)) 6# (0.10, 0.10)-(0.40, 0.90) 7axes1 = fig.add_axes((0.10,0.1,0.30,0.8)) 8# (0.50, 0.10)-(0.80, 0.90) 9axes2 = fig.add_axes((0.50,0.1,0.30,0.8), projection="3d") 10# (0.43, 0.10)-(0.47, 0.90) 11cbar_ax1 = fig.add_axes((0.43,0.1,0.04,0.8)) 12# (0.83, 0.10)-(0.87, 0.90) 13cbar_ax2 = fig.add_axes((0.83,0.1,0.04,0.8)) 14 15 16im1 = axes1.imshow(sensordata, cmap="plasma", 17 extent=[0,sensordata.shape[0],0,sensordata.shape[1]], 18 interpolation="bicubic", 19 aspect='auto', 20 origin='lower') 21 22#軸ラベル設定 23axes1.set_xlabel("X") 24axes1.set_ylabel("Y") 25 26#軸目盛設定(設定方法を2つ記載) 27axes1.set_xticks(np.arange(0, 9, 1)) 28axes1.set_yticks(np.arange(0, 9, 1)) 29 30axpos = axes1.get_position() 31print(axpos) 32#Color Bar作成 33cbar = fig.colorbar(im1,cax=cbar_ax1) 34cbar.set_label("Temp") 35#Title表示 36axes1.set_title(title, fontsize=12) 37 38temp_min = sensordata.min() 39temp_max = sensordata.max() 40X, Y = np.indices(sensordata.shape) 41 42#散布図(dot)表示 43#s: Scale Default20 44im2 = axes2.scatter( 45 X.flat, 46 Y.flat, 47 sensordata.flat, 48 c=sensordata.flat, 49 cmap="jet", 50 edgecolor="gray", 51 s=160, 52) 53axes2.plot_surface(X, Y, sensordata, cmap="jet", alpha=0.4) 54# カラーバー追加 (xmin, ymin, w, h) でカラーバーを表示する位置を指定 55cbar = fig.colorbar(im2, cax=cbar_ax2) 56cbar.set_label("Temp") 57#軸ラベル設定 58axes2.set_xlabel("X") 59axes2.set_ylabel("Y") 60#軸目盛設定 61axes2.set_xticks(np.arange(0, 9, 1)) 62axes2.set_yticks(np.arange(0, 9, 1)) 63axes2.set_zticks(np.arange(temp_min, temp_max, 1)) 64#Title表示 65axes2.set_title(title, fontsize=12) 66# 視点 67axes2.view_init(30, -45)

投稿2020/03/11 04:40

magichan

総合スコア15898

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

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

raspypy

2020/03/11 04:51

ありがとうございます。 質問に掲示させていただいたのですが、3Dグラフの大きさを、右側のBicubic画像と同じくらいにすることはできますでしょうか。 axes2.scatterパラメータのsの値を変更しても、大きさが変わらないので、教えていただけると助かります。
magichan

2020/03/11 05:17

3dグラフが小さいということでしょうか? 現状で右と左の描画エリアのサイズは全く同じです。(共に width:0.3, height:0.8) ただ、描画エリアのサイズは同じでも、片側はフルに2次元グラフを描画して、片側はその中に3Dグラフを書いているので、グラフ自体のサイズが違って見えるのはしょうがないのではないでしょうかね。 どうしても、それが許容できないのであれば、あとはサイズが同じに見えるように左側の描画サイズを大きくして調整するとよいかと思います。
raspypy

2020/03/11 06:45

描画エリアのサイズを確認しました。失礼しました。 サイズが同じに見えるように調整させていただきます。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問