2017-03-04 13 views
0

私のpythonグラフには奇数の二重層テキストがあり、初心者としてはこれをどのようにクリーンアップするのか分かりません。これはどのようにして行われますか?pythonグラフの二重層テキストを修正する方法

おかげ

import matplotlib.pyplot as plt 
import numpy as np 

fig1 = plt.figure(1) 
plt.xticks(np.arange(0, 701, 100)) 
plt.yticks(np.arange(0.0, 3.7, 0.5)) 

frame1=fig1.add_axes((0.1,0.3,.8,.6)) 
m, b = np.polyfit(x, y, 1) 
plt.plot(x, m*x + b, '-', color='grey', alpha=0.5) 
plt.plot(x,y,'.',color='navy',markersize=6) 
plt.errorbar(x,y,xerr=0,yerr=yerr,linestyle="None",color='navy') 
plt.ylabel('$Natural\ Log\ of\ Rate$',fontsize=17) 
plt.grid(False) 

frame2=fig1.add_axes((.1,.1,.8,.2)) 
s = m*x+b #(np.sqrt(4*np.pi*8.85E-12)/2.23E-8)*x 
difference = y-s 
plt.plot(x, difference, 'ro') 
frame2.set_ylabel('$Residual$',fontsize=17) 
plt.xlabel('$Time$ $(s)$',fontsize=17) 
plt.savefig('mygraph') 

plt.show() 
+0

それはプロットは見栄えしないことは明らかであるが、それはあなたの代わりに何をしたい明確ではありません。どの軸がどこにあるべきですか?両方のグラフが同じ軸にあるべきですか? [ask]を読んで[mcve](ここでは 'x'、' y'と 'yerr'は何ですか?)を提供することを検討してください。 – ImportanceOfBeingErnest

答えて

1

あなたはmatplotlibの自動的211は2行1列のグリッド上で、最初(一番上)のサブプロットを使用しなければならないことを意味fig.add_subplot(211)を使用して、サブプロットを配置できるようにするとよいでしょう。

plt.plot()ではなくax.plot()の代わりにAPIメソッドを使用して、他のすべてのラベルとティックをAPIメソッドを使用して設定すると便利です。これにより、どの要素がどのサブプロットに属するのかを簡単に判断できます。

import matplotlib.pyplot as plt 
import numpy as np 

x = np.arange(0, 700, 100) 
y = np.arange(0.0, 3.5, 0.5) 

fig1 = plt.figure(1) 

ax1=fig1.add_subplot(211) 
m, b = np.polyfit(x, y, 1) 

ax1.set_xticks(np.arange(0, 701, 100)) 
ax1.set_yticks(np.arange(0.0, 3.7, 0.5)) 
ax1.plot(x, m*x + b, '-', color='grey', alpha=0.5) 
ax1.plot(x,y,'.',color='navy',markersize=6) 
ax1.set_ylabel('$Natural\ Log\ of\ Rate$',fontsize=17) 
plt.grid(False) 

ax2=fig1.add_subplot(212) 
s = m*x+b #(np.sqrt(4*np.pi*8.85E-12)/2.23E-8)*x 
difference = y-s 
ax2.plot(x, difference, 'ro') 
ax2.set_ylabel('$Residual$',fontsize=17) 
ax2.set_xlabel('$Time$ $(s)$',fontsize=17) 

plt.show() 

enter image description here

関連する問題