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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1625閲覧

グラフと一緒に表を表示させたい

yamatail

総合スコア77

Matplotlib

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/08/09 07:38

前提・実現したいこと

グラフと一緒に表を載せて表示させたい。

発生している問題・エラーメッセージ

ax2.textで場所を微調できればいいのですが、bottomとかcenterとかしかなく
きれいに表が出来ません。

他に表作成でいい方法があれば、教えて頂けますでしょうか。

また、plt.vlines()で設定したところ表示されない部分がありこれもどうにかしたいところです。

該当のソースコード

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4fig = plt.figure(figsize=(10, 6), dpi=80) 5#ax1とax2を設定 6ax1 = fig.add_axes((0.0, 0.0, 0.7, 1.0)) 7ax2 = fig.add_axes((0.71, 0.8, 0.29, 0.2)) 8 9#表を表示させるための枠 10ax2.axis('off') 11xmin = 0; xmax = 10 12ymin = 0; ymax = 5 13ax2.set_xlim(xmin, xmax) 14ax2.set_ylim(ymin, ymax) 15 16#線を書く 17seqy = np.array([0, 1, 2, 3]) 18seqx = np.array([0, 1, 5, 6, 10]) 19plt.hlines(seqy, xmin, xmax, colors="r", linestyle="solid")#右端が表示されない 20plt.vlines(seqx, ymin, 3, colors="k", linestyle="solid")#一番下が表示されない 21 22ax2.text(0,4,'curve fitting',ha='left',va='bottom',fontsize=14) 23ax2.text(0,3,'gauss',ha='left',va='bottom',fontsize=14) 24ax2.text(0,2,f'$A_0$',ha='left',va='bottom',fontsize=14) 25ax2.text(0,1,'σ',ha='left',va='bottom',fontsize=14) 26ax2.text(0,0,'μ',ha='left',va='bottom',fontsize=14) 27ax2.text(5,3,'quradrtic',ha='left',va='bottom',fontsize=14) 28ax2.text(5,2,f'$a_0$',ha='left',va='bottom',fontsize=14) 29ax2.text(5,1,f'$b_0$',ha='left',va='bottom',fontsize=14) 30ax2.text(5,0,f'$c_0$',ha='left',va='bottom',fontsize=14) 31 32

補足情報(FW/ツールのバージョンなど)

python3.6

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

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

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

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

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

guest

回答2

0

ベストアンサー

既に解決しているようですが。

matplotには一応 table を書くためのAPIが準備されております。

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.table.html

Python

1import numpy as np 2import matplotlib.pyplot as plt 3 4fig = plt.figure(figsize=(10, 6), dpi=80) 5 6#ax1とax2を設定 7ax1 = fig.add_axes((0.0, 0.0, 0.7, 1.0)) 8ax2 = fig.add_axes((0.71, 0.8, 0.29, 0.2)) 9ax2.axis('off') 10ax2.set_title('hoge') 11ax2.table(cellText=[[r'$A_0$', 0, '$a_0$', 0], 12 ['σ' , 0, '$b_0$', 0], 13 ['μ' , 0, '$c_0$', 0]], 14 colLabels=['gauss', '', 'guradrtic', ''], 15 colColours=['gray', 'white', 'gray', 'white']) 16 17plt.show()

できればセルを結合したいところ・・。

投稿2018/08/09 08:55

magichan

総合スコア15898

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

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

yamatail

2018/08/10 00:22

これです!この感じです!!(かっこいい~) こんなのあったんですね。ありがとうございます!
yamatail

2018/08/10 00:40

tableだとセル結合できないのですか?
magichan

2018/08/10 04:58 編集

残忍ながら、そのものズバリの方法を見つけることはできませんでした。 とりあえず ・2つ以上のテーブルを重ねてそれっぽく見せる https://stackoverflow.com/questions/9932072/matplotlib-table-formatting ・内部情報のPropertyを直接弄る https://stackoverflow.com/questions/37279807/matplotlib-table-with-double-headers をやっている人は見つけましたので情報を展開しておきます。 やるなら前者が簡単そうですね。
yamatail

2018/08/10 05:34

何でもできそうで、できないこともあるのですね。 力技が必要な時もありますか!少しやってみます。 貴重な時間を使って探していただいてありがとうございます。
guest

0

.textのx軸とy軸で微調できました。。。
整数しか無理かと思いこんでいたら、少数でも行けるみたいで。

python

1ax2.text(1, 3, ' {:.7e}'.format(a1), ha = 'left', va = 'bottom' , fontsize = fsz)

投稿2018/08/09 08:46

yamatail

総合スコア77

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問