我正在PsychoPy(v。1.90.1)中进行元认知实验,我需要一个视觉模拟量表来衡量自信心。但是,我找不到从Psychopy VAS末端去除数值(0
和1
)的方法。
有什么办法藏起来吗?
我需要单词标签("Not at all confident"
,"Extremely confident"
),但我也想将答案以0-100
量表(或等效的0-1
)记录为模拟量表可以做到(因此切换到分类不会)。
有什么建议吗?
谢谢。
索尼娅
答案 0 :(得分:1)
看看the documentation,尤其是labels
和scale
。这是一种解决方案:
# Set up window and scale
from psychopy import visual
win = visual.Window()
scale = visual.RatingScale(win,
labels=['Not at all confident', 'Extremely confident'], # End points
scale=None, # Suppress default
low=1, high=100, tickHeight=0)
# Show scale
while scale.noResponse:
scale.draw()
win.flip()
# Show response
print scale.getRating(), scale.getRT()
答案 1 :(得分:1)
您可能还对新的Slider感兴趣,新的{{3}}已包含在当前PsychoPy Beta版本中,并将成为下一发行版的一部分。这是一个Python 3代码示例,如何使用它:
from psychopy.visual.window import Window
from psychopy.visual.slider import Slider
win = Window()
vas = Slider(win,
ticks=(1, 100),
labels=('Not at all confident', 'Extremely confident'),
granularity=1,
color='white')
while not vas.rating:
vas.draw()
win.flip()
print(f'Rating: {vas.rating}, RT: {vas.rt}')
在重新使用之前,您必须致电vas.reset()
。
答案 2 :(得分:1)
可能我会扩展@hoechenberger的答案以增加对
的支持markerPos
设置为以刻度线为单位的随机值)markerPos
,并在完成后将其分配给rating
)代码如下:
from psychopy import visual
from psychopy import event
from numpy.random import random
stepSize = 2
win = visual.Window()
vas = visual.Slider(win,
ticks=(0, 1),
labels=('Not at all confident', 'Extremely confident'),
granularity=1,
color='white')
for thisTrialN in range(5):
vas.reset()
vas.markerPos = random() # randomise start
while not vas.rating:
# check keys
keys = event.getKeys()
if 'right' in keys:
vas.markerPos += stepSize
if 'left' in keys:
vas.markerPos -= stepSize
if 'return' in keys:
# confirm as a rating
vas.rating = vas.markerPos
# update the scale on screen
vas.draw()
win.flip()
print('Rating: {}, RT: {}'.format(vas.rating, vas.rt))