2013-06-06 83 views
2

當使用統計工具箱中的boxplot命令時,軸屬性以奇怪的方式變化。例如,一個得到如何更改箱形圖上的軸標籤

 
    XTick = [] 
    XTickLabel = 
    XTickLabelMode = manual 
    XTickMode = manual 

發生了什麼事給軸和一個如何可以重命名標籤,和/或刪除一些蜱?

+0

你調用'boxplot'的數據是? – paddy

+0

描述數據很困難。假設它有很多組。無論數據是什麼,在調用boxplot後,軸行爲的變化似乎都會發生。 – passerby51

回答

5

嘗試使用可選的labels參數調用boxplot


編輯 - 什麼boxplot實際上沒有進一步的信息。

boxplot做一些複雜的東西 - 類型edit boxplot來看看代碼,你會發現它是一個非常長和錯綜複雜的功能。基本上它會生成一個沒有軸標籤的空白軸,這就是爲什麼您會看到XTick等空值。然後,它會使boxplot元素脫離個別行,並通過添加文本元素來模擬假軸標籤。你可以找到它們並直接修改它們,通過繪製一個數字f,然後獲得Childrenf,然後迭代獲得他們的Children。最終你會找到帶有標籤名稱的文本元素。

+0

謝謝,這照顧我的問題,即將標籤旋轉到垂直狀態(通過將'labelorientation'屬性設置爲'inline')。但是,它並沒有解釋'boxplot'對軸的作用。 – passerby51

+1

'boxplot'做了一些複雜的事情 - 輸入'edit boxplot'來查看代碼,你會發現它是一個非常長而複雜的函數。基本上,它會生成一個沒有軸標籤的空白軸,這就是爲什麼您會看到「XTick」的空值等等。然後,它會使boxplot元素不在單獨的行中,並通過添加「text」元素來模擬假軸標籤。你可以直接找到它們並修改它們,通過繪製一個'f'圖,然後獲得'f'的'Children',然後迭代獲得他們的'Children'。最終你會找到帶有標籤名稱的'text'元素。 –

+1

@SamRoberts真是個好評 - 這應該是你答案的一部分。 – paddy

3

試試這個:

xtix = {'A','B','C'}; % Your labels 
xtixloc = [1 2 3];  % Your label locations 

set(gca,'XTickMode','auto','XTickLabel',xtix,'XTick',xtixloc); 

由於種種原因重置XTickMode自動似乎是關鍵。

+0

謝謝!無論他們的動機是如何在boxplot中對標籤進行黑客攻擊,從我的角度來看,處理軸標籤的自然方式似乎更有意義。我很震驚地看到函數中有近4000行代碼。打破標籤(以及依賴於它的工作流程)顯然是其中一個後果。 – Tom

0

謝謝你,薩姆羅伯茨,這是有幫助的。

我寫了以下內容,根據此建議刪除組標籤。但是,它將刪除所有標籤,包括軸和數據提示。似乎沒有辦法去除軸上的標籤,但將其留在數據提示上。

m = get(get(get(figH,'Children'),'Children'),'Children'); 
for ii = 1:numel(m) 
    if(strcmp(get(m(ii),'Type'),'text')) 
     set(m(ii),'String', ''); 
    end 
end 

變量figH是手柄,你的身材。如果boxplot是活動圖形手柄,也可以嘗試gcf。

+0

如果它不能真正解決問題,並且你有自己的問題,那麼它應該作爲一個新問題發佈。 –