PsychoPy入門_04_等級評定

不靠譜PsychoPy入門教程目錄:

  1. PsychoPy入門00安裝

  2. PsychoPy入門01文字和圖片的呈現(xiàn)

  3. PsychoPy入門02按鍵等待&反應(yīng)時

  4. PsychoPy入門03視頻和音頻的呈現(xiàn)

  5. PsychoPy入門04等級評定

  6. PsychoPy入門05循環(huán)和隨機

  7. PsychoPy入門06數(shù)據(jù)記錄

  8. PsychoPy入門07鼠標(biāo)的使用

  9. 用PsychoPy做視覺搜索任務(wù)實驗


這是第四篇了,說說等級評定的用法吧占业。

PsychoPy中有個RatingScale()的方法李剖,可以用在多選堪藐、等級評分上。它是一個標(biāo)尺的樣子镜会,讓被試在上面點選,可以記錄選擇的選項和反應(yīng)時。

用到模塊跟前面兩次一樣童社,還是這三個:

from psychopy import visual, core, event

等級評定分兩種,一種是分類的著隆,稱名量表或名義量表扰楼,選項代表類別;一種是定量的美浦,數(shù)值代表大小弦赖。下面每一種的我們都建一個:

scale_1 = visual.RatingScale(win, choices = [u'ugly',u'WTH',u'nice'], pos = (0.0,-0.6))
scale_2 = visual.RatingScale(win, scale = u'1=非常不喜歡 . . . . . . . . . . . 7=非常喜歡',
                                low =1, high = 7, precision = 1, pos = (0.0,-0.6),
                                marker = 'circle', showValue = True,
                                acceptPreText = u'請在橫線上點擊')

解釋一下,scale_1是分類的量表浦辨,choices里放的是每個選項蹬竖,它們會作為標(biāo)尺的標(biāo)簽。pos是位置流酬,不多說币厕。

scale_2的話就是個等距量表,這里就不再用choices了(choices的優(yōu)先級高芽腾,有它在其他跟它沖突的參數(shù)就失效了)旦装。

  • scale是對量表的解釋描述,放在標(biāo)尺上面摊滔,內(nèi)容是字符阴绢。low和high是最小值和最大值店乐。
  • precision精度的默認(rèn)值是1,這里最大7最小1呻袭,精度是1眨八,那就只能選擇1到7這七個整數(shù),沒有別的值左电。
  • marker是選擇的時候在標(biāo)尺上顯示的圖標(biāo)廉侧,可以是‘triangle’、‘circle’券腔、‘glow’伏穆、‘slider’(比如取值在0-100的話可以平滑的拖動)和‘hover’(用在choices上才行)。這里用個最普通的圓形纷纫。
  • showValue的值可以使True和False枕扫,True的話被試選擇之后底下會出現(xiàn)所選的值,F(xiàn)alse就不會出現(xiàn)辱魁。- ------ acceptPreText是沒做選擇的時候烟瞧,標(biāo)尺底下的確定按鈕上顯示的文字。

當(dāng)然還有很多其他的參數(shù)染簇,可以設(shè)置大小参滴、顏色、字體等等锻弓。想鼓搗來玩兒的話砾赔,參考手冊:RatingScale

具體要對什么東西做評定呢青灼,隨便來張圖片吧暴心,順道配個文字說明。

pic = visual.ImageStim(win, image = 'test_1.jpg', pos = (0.0,0.4))
item = visual.TextStim(win, text = u'', pos = (0.0,-0.1))

接下來呈現(xiàn)我們要評定的圖片杂拨、文字說明以及上面建好的scale专普。也是用stim.draw()。需要用到while循環(huán)弹沽,如果被試沒有做出選擇(scale.noResponse == True)就要一直呈現(xiàn)檀夹,做出選擇之后跳出循環(huán)繼續(xù)執(zhí)行下面的代碼。這部分的代碼是這樣的:

# 第一個量表
item.text = u'這張圖給你的感受是策橘?'
while scale_1.noResponse:
    pic.draw()
    item.draw()
    scale_1.draw()
    win.flip()

# 第二個量表
item.text = u'評定你對著張圖片的喜愛程度炸渡。'
while scale_2.noResponse:
    pic.draw()
    item.draw()
    scale_2.draw()
    win.flip()

運行一下,你會看到這樣的畫面:




【注意:】如果同一個scale要重復(fù)使用的話丽已,需要在下次調(diào)用前重置(reset)偶摔,不然它處于已經(jīng)選擇的狀態(tài),noResponse=False促脉,while循環(huán)不會執(zhí)行辰斋。只需要填上這兩行就行:

scale_1.reset()
scale_2.reset()

這個應(yīng)該作為習(xí)慣填在while循環(huán)前,一般情況下我們會讓被試對多個對象進行評定瘸味,重復(fù)使用是肯定的宫仗。

RatingScale會記錄你所做的選擇和所用的時間,用scale.getRating(), scal.getRT()獲取旁仿∨悍颍可以用print打印出來看看:

print 'scale 1:', scale_1.getRating(), scale_1.getRT()
print 'scale 2:', scale_2.getRating(), scale_2.getRT()

這兩行分別放在兩個scale的while循環(huán)下面。運行之后枯冈,可以在output窗口看到你的選擇結(jié)果毅贮,類似這樣:

RatingScale()的用法基本上就是這些了。


整體代碼如下:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

#示例4
'''
    等級評定
'''
#載入所需要的庫
from psychopy import visual, core, event

#創(chuàng)建窗口
win = visual.Window(fullscr = False, size = (1000,600),
                    color = (-1.0,-1.0,-1.0), units = 'norm', monitor = 'testMonitor')

#評定內(nèi)容
pic = visual.ImageStim(win, image = 'test_1.jpg', pos = (0.0,0.4))
item = visual.TextStim(win, text = u'', pos = (0.0,-0.1))

#量表
scale_1 = visual.RatingScale(win, choices = [u'ugly',u'WTH',u'nice'], pos = (0.0,-0.6))
scale_2 = visual.RatingScale(win, scale = u'1=非常不喜歡 . . . . . . . . . . . 7=非常喜歡',
                                low =1, high = 7, precision = 1, pos = (0.0,-0.6),
                                marker = 'circle', showValue = True,
                                acceptPreText = u'請在橫線上點擊')
#呈現(xiàn)
item.text = u'這張圖給你的感受是尘奏?'
scale_1.reset()
while scale_1.noResponse:
    pic.draw()
    item.draw()
    scale_1.draw()
    win.flip()
print 'scale 1:', scale_1.getRating(), scale_1.getRT()

item.text = u'評定你對著張圖片的喜愛程度滩褥。'
scale_2.reset()
while scale_2.noResponse:
    pic.draw()
    item.draw()
    scale_2.draw()
    win.flip()
print 'scale 2:', scale_2.getRating(), scale_2.getRT()

win.close()
core.quit()

P.S. RatingScale有個maxTime和minTime的參數(shù),minTime是必須等多少秒之后才能做選擇炫加,maxTime是最長等待多少秒瑰煎。比如你的實驗對反應(yīng)時有要求,必須在4秒之內(nèi)做出選擇才有效俗孝,就可以設(shè)置maxTime的值等于4酒甸,這樣四秒內(nèi)沒做選擇就自動跳過去了。

有什么疑問或者建議赋铝,請在下方評論插勤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市革骨,隨后出現(xiàn)的幾起案子农尖,更是在濱河造成了極大的恐慌,老刑警劉巖苛蒲,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卤橄,死亡現(xiàn)場離奇詭異,居然都是意外死亡臂外,警方通過查閱死者的電腦和手機窟扑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漏健,“玉大人嚎货,你說我怎么就攤上這事∧杞” “怎么了殖属?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瓦盛。 經(jīng)常有香客問我洗显,道長外潜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任挠唆,我火速辦了婚禮处窥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玄组。我一直安慰自己滔驾,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布俄讹。 她就那樣靜靜地躺著哆致,像睡著了一般。 火紅的嫁衣襯著肌膚如雪患膛。 梳的紋絲不亂的頭發(fā)上摊阀,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音剩瓶,去河邊找鬼驹溃。 笑死,一個胖子當(dāng)著我的面吹牛延曙,可吹牛的內(nèi)容都是我干的豌鹤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼枝缔,長吁一口氣:“原來是場噩夢啊……” “哼布疙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愿卸,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤灵临,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趴荸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體儒溉,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年发钝,在試婚紗的時候發(fā)現(xiàn)自己被綠了顿涣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡酝豪,死狀恐怖涛碑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孵淘,我是刑警寧澤蒲障,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響揉阎,放射性物質(zhì)發(fā)生泄漏庄撮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一余黎、第九天 我趴在偏房一處隱蔽的房頂上張望重窟。 院中可真熱鬧,春花似錦惧财、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乖坠,卻和暖如春搀突,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背熊泵。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工仰迁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顽分。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓徐许,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卒蘸。 傳聞我的和親對象是個殘疾皇子雌隅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容