1. ホーム
  2. python

[解決済み] matplotlibを使って2つの図を表示するには?

2023-05-30 09:35:11

質問

2つの図形を同時に描画する際に、1つのプロットに表示されないというトラブルがあります。しかし、ドキュメントによると、コードを書いても1つの図しか表示されません。 何か重要なことを見失っているような気がします。どなたか教えていただけませんか?ありがとうございます。 (コードで使用している*tlist_first*はデータのリストです)。

plt.figure(1)
plt.hist(tlist_first, bins=2000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')
plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')

plt.axvline(x = 30, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min')
plt.axvline(x = 60, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour')
plt.legend()
plt.xlim(0,120)
plt.ylim(0,1) 
plt.show()
plt.close() ### not working either with this line or without it

plt.figure(2)
plt.hist(tlist_first, bins=2000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')

plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')

plt.axvline(x = 240, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min')
plt.axvline(x = 1440, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour')
plt.legend(loc= 4)
plt.xlim(0,2640)
plt.ylim(0,1)
plt.show()

どのように解決するのですか?

を呼び出す代わりに plt.show() を呼び出す代わりに、各図形を個別に制御することもできます。

f = plt.figure(1)
plt.hist........
............
f.show()

g = plt.figure(2)
plt.hist(........
................
g.show()

raw_input()

この場合 raw_input を呼び出す必要があります。 こうすることで、表示したい数字を動的に選択することができます。

注意 raw_input() は改名され input() に変更されました。