好,那接下來呢我們就要來畫scatter plot了哦 所以要畫scatter plot的話要怎麼畫,哎剛好上一課不是教過嗎? 我們可以使用matplotlib這個library來做這個scatter plot 所以呀,我們基本上就是我們來import這個library,那我們叫它pyplot- 好了,好比如說 好,所以呢今天我按下button的時候,我要說按下button的時候要幹嘛 要幹嘛呢?我們來看一下,首先我要去 把文字方塊裡面的東西拿出來 好,就如我們剛剛所說的,我們今天呢,指定開頭指定結尾的話 我們就可以把這個文字方塊的資訊取出來 取出來的時候是一個字串嘛,所以我們今天就要在這裡split它 split的時候呢,我們用","來隔開,哦所以我們待會兒輸入的時候自己要記得我們要- 用","把它隔開 隔出來的東西變進x了以後,x裡面現在存的還是字串,所以我們把它float 了以後,就變成數字啦,呢對y呢如法炮製,這樣我們就有x跟y了 接著我們就去plot它,plot的時候你可以做一些setting 哦比如說我想要大一點的圈圈,我想要藍色或是什麼的 然後呢我們就show它,這樣應該也就可以了吧 畫呢,大概會變成像這個樣子,好那我們來試一下 好我們今天在這裡有plot2 好就跑出來了,比如說5,4,3,2,1 另外這裡我們就亂打一通,7,3,4,9,2之類的 plot,哎?你就看到這個東西被plot出來了,看起來沒錯,對吧! 哦5,4,3,2,1 7,3,4,9,2哎還真的沒錯 而且畫出來的這東西你也覺得蠻眼熟的對吧,這不就是上禮拜講的 我們在用這個matplotlib的時候會畫出來的東西嗎? 好所以這看起來確實是沒有任何的問題,這個可以關掉那個可以關掉,程式自然就會結束 好所以這個是ok了,不過我們還是有幾個問題啊 第一個就是這個scatter plot跟我們這個plotter不一樣 哦雖然開一個新視窗也沒有說不好,但我們今天的任務是把它華仔canvas上,所以待會- 兒還要再調一下 另外呢就是這個scatter plot,哦它的這個xlim跟ylim 我們想要做一點微調,所以我們等一下來看看我們可以怎麼做 我們要做的事情呢,基本上就是我們要來把這個,多一個函數,叫做makeScatter- Plot 或者說makeScatter,我們把x跟y傳進去 那麼我們傳進來的x跟y當然就是剛剛那一串數字,我們兩串數字 那我們來看看我們會做什麼,我們呢,先用pyplot- .figure,來產生一個新的圖,但目前裡面還沒有東西哦 然後呢我們來plot它,那它這個ok嘛。 接下來呢,我們要用pyplot 這個東西來設定xlim跟ylim 那這個是要設什麼,這個東西基本上呢,就是以x 來說,我先把range算出來,最大值跟最小值差多少 然後我的xlim這個函數,用","隔開的前面跟後面 各是去設我的這個圖的x軸 跟y軸,要從x軸的最小值跟最大值,要畫到哪裡去 所以呢,我們就用minimum的value去減range*0.1 max去乘,呃去加上range*0.1 然後來做為我們的這個最小值跟最大值 舉個例子來說啦,比如說我剛剛輸入的x 如果是1,2,3,4,5,那麼這個range就是4 那麼呢我的圖就從(1-0.4),也就是從0.6開始畫 而外面這裡呢也是一樣,(5+0.4) 那就是5.4,我們就從5.4開始畫 好大概是這麼一回事。 好於是呢我們就練習哦,設這兩個函數不錯 然後接著呢,我們呼叫savefig這個函數,它就會 把圖存到我們的電腦裡面去,哦存到我們的電腦裡面去 那麼這樣子的話呢,它就變成一個普通的png,有了這個png了以後, 我們要幹嘛?我看這裡,哦我們剛剛按一個button以後把x跟y算出來 我們去呼叫makeScatter,那現在這個時候硬碟裡面就有那個png檔了 我們呢,就馬上用這個老方法 去把一個image object做出來 然後呢,呼叫canvas有一個creat image的函數 在這個函數裡面呢,我們設定這個圖要多大,要多大 image你是誰,以及一個所謂的anchor anchor呢就相當於是[位置]在講,就是所謂的位置 你要把它放中間、 放左邊、 放右上、 還是whatever。 好那我們這個時候呢當然是把它放在正中間。 這樣子一來呢,我們做事情就跟剛剛不盡相同了 對吧?我們不會開一個新視窗,而是我們會得到這個png 檔,然後把它,有點像是抓進來我們的canvas上面呈現。 那當然最後我們還有一件事情是應該要做的 就是呢,如果我們今天一直把這個暫存的png檔,它就留在硬碟里, 那你不免覺得硬碟里有一天就會充滿了各式各樣的lese,這樣也不大ok 好所以我們最後,去刪除你的png檔 那這件事情呢,我們可以import os來做到 好那這個大家以前可能見過,可能沒見過 不過沒關係,os這個library就是給你一些 操作你的作業系統上面的功能的這個動作。 好所以這個os.system在做的事情就是說,請你 去delete你的temp.png大概是這個樣子。 好那麼呢,我們就來試一下,應該會看到類似這樣的畫面,好那我們來看看啊, 今天呢,我們這個program在這裡 那我們可以稍微看一下import os,然後import這個library,這個我們都用過啦,然後ImageTK這個- 也是需要的 等我按下button呢以後呢,先去make scatter,哦make scatter在這裡,最後是去save figure作為結束 所以我們這裡就不show,哦我們去save figure 然後呢,我們再,有了figure了以後,我們就在這裡把東西抓進來,然後最後把它de- lete掉,那我們來試試看 這個時候呢,如果我們在這裡頭嘗試打字,比如說1,2,3 6,5,6,4,3這樣y就可以,像這樣 plot,哎這個時候跑出來各式各樣的錯誤,然後你仔細地一讀,哦就發現哦老樣子 就是你找不到相關的這個檔案,因為我們又忘記設它的這個路徑啦! 好所以這個時候呢,就是我們又要需要[未知]資源,好,所以我們來python 這個時候已經不是calculater了,這個時候是plotter對吧 然後是plotter3,好出現了,我們再來一次, 4,我就4,6,8吧 然後這裡呢,就來一個5,1,3,plot 哎,出現了哦,4,6,8,5,1,3,感覺真的是不錯,對吧 那你說,哎那我能不能重畫,可能可以哦,我們來試試看 9,3,7,1跟,哦比如說這裡一樣是5,1,3,2 哎,哦這個時候呢,就又出現了新的圖,哦這樣子就是看起來就是沒有什麼問題了對吧! 那你看這裡,哦這裡也會出現一些其他資訊,就是比如說什麼temp.png啊 無法存取檔案,正由另一個程序使用啊,哦不過看起來你的program運行還是正常嘛 哦所以你可能會想要深究一下後面它到底是在講什麼 那可能需要可能不需要。 那這個東西到了這個階段,就是你的責任啦! 好我們不管怎麼樣,我們也看到我們確實是有辦法把資料畫到熒幕上的。 哦畫到我們的canvas上的。