[繪圖疑問] 如何讓axes上畫的線獨立消失?(文長)

看板MATLAB作者 (布袋裡的番茄)時間7年前 (2017/01/31 11:53), 7年前編輯推噓3(307)
留言10則, 2人參與, 最新討論串1/1
(文長抱歉QQ) 版上的各位好> < 小妹是 matlab 新手 最近想要繪圖展示數據時遇到了一個瓶頸 小妹使用 GUI介面拖出了 14個 checkbox以及一張 axes 讓使用者自由選取想要的數據做比對 (以下將 checkbox 簡稱 cb) 例如:當使用者選取cb1、cb7和cb5時,同時在axes1上繪出三條對應的曲線 當使用者取消 cb1 時,cb1所對應的曲線消失,其他曲線則保留在axes1上 也就是說,當使用者選擇或取消任何cb時,該cb所對應的曲線將會獨立出現或消失 ---------------------------問題點------------------------------- 目前小妹的問題在於曲線無法單獨消除,所以小妹立刻去詢問了google大神 查詢到了許多方法,但使用後都不合要求 因此小妹想問問版上的高手們,不知道matlab是否還有符合小妹需求的指令可以使用? 謝謝各位版友看完這篇長文 > < 以下先補充一個小妹曾使用過但覺得不合要求的方法,說不定其中藏有關鍵只是小妹不清楚, 有待版上高手提點了 > < 1.利用坐標軸的children屬性刪除上一次的繪圖記錄 用法是 h = get(handles.axes1,'children'); % 取得axes1的children值 delete(h(1)); %刪除上一次的繪圖記錄 可是因為它是刪除「上一次」的繪圖記錄,所以若我是依照cb1->cb7->cb4的順序選取 就只能取消 cb4 的曲線,不能取消其他的,這樣曲線就不是獨立消失了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.245.227 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1485834806.A.64B.html

01/31 17:00, , 1F
在畫的時候拿handle, h1=plot(...) h7=plot(...)
01/31 17:00, 1F

01/31 17:01, , 2F
刪的時候就可以指定來刪 delete(h1) delete(h7)
01/31 17:01, 2F
原來plot也可以拿handle~謝謝sunev大大,我搭配pause之後做出我要的東西了~~

02/01 00:27, , 3F
(憑印象)用line物件, set visible off
02/01 00:27, 3F

02/01 00:28, , 4F
plot可能會覆蓋吧?變成一線一圖。
02/01 00:28, 4F

02/01 00:31, , 5F
建議用GUI Layout Toolbox(in file exchange)不要自己拉,
02/01 00:31, 5F

02/01 00:31, , 6F
好看也易於程設。
02/01 00:31, 6F

02/01 00:32, , 7F
如果希望line在點下時才繪製,可由callback函數即時建立
02/01 00:32, 7F
感謝sppmg大大的回覆~> <,我還在研究line物件,對它比較不熟QQ 另外,因為小妹從來沒聽過 GUI Layout Toolbox...QQ 所以想問您這個工具箱做出來的使用者介面是不是跟一般用拉的那種GUI不一樣 還有哪裡可以找到它的語法介紹呢 ? > < ※ 編輯: Nestomato (101.12.247.85), 02/02/2017 15:06:43

02/02 17:23, , 8F
它可自動調各元件位置,縮放不跑掉。做大量元件排列很好用
02/02 17:23, 8F

02/02 17:23, , 9F
。說明的話,裡面附的說明書就很清楚了。
02/02 17:23, 9F
我使用的是學校版本的所以沒有說明書XD 不過有自己去網路上看一些資料了 感謝sppmg大大提供的建議~ ※ 編輯: Nestomato (120.114.181.163), 02/11/2017 21:12:02

02/14 19:23, , 10F
它是免費的喔!要從exchange上抓來裝
02/14 19:23, 10F
文章代碼(AID): #1Oa0esPB (MATLAB)
文章代碼(AID): #1Oa0esPB (MATLAB)