2013-05-25 74 views
2

我是熊貓和matplotlib的新手,但不是Python。我有兩個問題;小學和中學。只顯示熊貓盒狀圖中的第n個ticklabel

主:
我有一個FICO大熊貓得分箱線圖上的y軸的x軸和利率。 由於FICO分數互相覆蓋,我的x軸全部搞砸了。 我想只顯示在x軸上每隔4或第5 ticklabel了幾個原因:

  • 一般它不太排行榜毫無價值
  • 在這種情況下,將允許標籤實際被閱讀。

我的代碼片段如下:

plt.figure() 
loansmin = pd.read_csv('../datasets/loanf.csv') 
p = loansmin.boxplot('Interest.Rate','FICO.Score') 

p保存返回值,因爲我想我可能需要進一步處理的情節,我現在要做的。

中學:
如何訪問的情節,次要情節,斧頭從熊貓對象箱線圖。上面是matplotlib.axes.AxesSubplot對象。
help(matplotlib.axes.AxesSubplot)給出了一個消息,說:

'AttributeError: 'module' object has no attribute 'AxesSubplot' 

dir(matplotlib.axes)名單AxesSubplotSubplotbase在該命名空間,但沒有AxesSubplot。我如何更好地理解這個返回的對象?

+0

您應該從matplotlib中檢出['MultipleLocator'](http://matplotlib.org/api/ticker_api.html?highlight=multiplelocator#matplotlib.ticker.MultipleLocator)。這裏有一個[示例](http://matplotlib.org/examples/pylab_examples/major_minor_demo1.html)。在附註中;根據我的經驗,用matplotlib繪圖比在熊貓中繪圖更靈活。 – hooy

+0

嗨,nordev,謝謝你的指針。但是,要使用MultipleLocator,我需要訪問基礎對象。雖然matplotlib當然更靈活,但學習曲線要​​高得多,而且從我的探索 - 創建boxplot並不像熊貓那樣簡單透明。 – Nitin

回答

1

AxesSubplot(我認爲)只是在matplotlib中獲得Axes的另一種方法。 set_xticklabels()是matplotlib面向對象接口(在軸上)的一部分。所以,如果你使用的是pylab,你可以使用xticks(ticks, labels),但是在這裏你必須把它分成不同的調用ax.set_xticks(ticks),ax.set_xticklabels(labels)。(其中axAxes對象)。

比方說,你只需要在650〜700設置蜱你可以做到以下幾點:

ticks = labels = [650, 700] 
plt.figure() 
loansmin = pd.read_csv('../datasets/loanf.csv') 
p=loansmin.boxplot('Interest.Rate','FICO.Score') 
p.set_xticks(ticks) 
p.set_xticklabels(labels) 

同樣,你可以使用set_xlimset_ylimxlim()ylim()等值plt

2

正如我進一步探索,我發現可以通過dir()探索返回的對象p。 這樣做,我發現了一個有用的方法列表,其中有set_xticklabels。 做help(p.set_xticklabels)給了一些神祕的,但仍然有用的幫助 - 基本上建議通過蜱標籤字符串列表。

然後我試着做以下事情 - 在上面代碼的最後一行的末尾添加set_xticklabels,以有效地鏈接調用。

plt.figure() 
loansmin = pd.read_csv('../datasets/loanf.csv') 
p=loansmin.boxplot('Interest.Rate','FICO.Score').set_xticklabels(['650','','','','','700']) 

這給出了期望的結果。我懷疑有一種更好的方式,就像matplotlib做的那樣,它允許你顯示每一個第n個標籤。但是,爲了立即使用,這可以起作用,並且還可以設置標籤,因爲任何原因它們不是週期性的,如果您需要的話。

像往常一樣,明確寫出問題幫助我找到答案。如果任何人都可以幫助我找到底層的matplotlib對象,這仍然是一個懸而未決的問題。

+0

@Nitlin查看我的答案,瞭解你發現的一些解釋。 –