2017-09-05 18 views
0

私はデータの視覚化が初めてで、x制限範囲に関する簡単な質問があります。私は4つの異なるプロットを持っているので、add_subplotメソッドを使って2x2グリッドを使っています。サブプロットのX制限を設定する

fig = plt.figure() 
ax = fig.add_subplot(221, facecolor='lightgrey') 
weeks = [] 
for weekNum in df.WeekNum: 
    weeks.append(weekNum) 
maxNumber = max(weeks) 
sixWeekList = list(range(maxNumber-6, maxNumber)) 
ax.set_title('Photo', fontsize = 14) 
ax.set_xlabel('Week Number') 
ax.set_xlim(sixWeekList) 
ax.set_ylabel('Percentage') 
ax.set_ylim([0,100]) 
fig.tight_layout() 

私の目的を、最新の6週間をプロットバーするために、私は、スクリプトを実行するたびに:ここでは、私がこれまで行っているものです。しかし、上記のプログラムを実行すると、次のエラーが表示され、x軸の範囲を設定することはできません。 ax.set_xlim([30,35])

**ValueError**     Traceback (most recent call last) 
<ipython-input-165-cbbb1eabca92> in <module>() 

---> ax.set_xlim(tmp) 
ValueError: too many values to unpack (expected 2) 

これを解決するために、任意の別の方法:しかし、私はちょうど)(ax.set_xlimに[30、35]を置けば、それは、元スムーズに動作しますか?

+1

が出て印刷してみますが、 'sixWeekList'それには2つの以上の数のリストです。 'ax.set_xlim(maxNumber-6、maxNumber)'のような最大値と最小値が必要です。実際のデータを持たないと実行できませんが、これと似たようなものが必要なものを得るでしょう。 – johnchase

+0

よろしくお願いします! !!私は "set_xlim"メソッドは、範囲自体を定義すると思います。私はリストを通過する必要はなく、下限と上限の数値だけを指定しました。 – SalN85

答えて

1

リストではなく、最大値と最小値で直接x制限を指定してください。これは失敗したものです。例えば

fig = plt.figure() 
ax = fig.add_subplot(221, facecolor='lightgrey') 
weeks = [] 
for weekNum in df.WeekNum: 
    weeks.append(weekNum) 
maxNumber = max(weeks) 
sixWeekList = list(range(maxNumber-6, maxNumber)) 
ax.set_title('Photo', fontsize = 14) 
ax.set_xlabel('Week Number') 

#just pass max and min here 
ax.set_xlim(maxNumber-6, maxNumber) 

ax.set_ylabel('Percentage') 
ax.set_ylim([0,100]) 
関連する問題