| Reference | Downloads | Github

Making labels with Rating Scale

I have a rating scale I made with the following code:

win = visual.Window(fullscr = True, pos = (0,0), units = "norm", color = "Black")
scales = '1=Extremely Weak, 9=Extremely Strong'
label = ['1','2','3','4','5','6','7','8','9']

scale = visual.RatingScale(win, low=1, high=9, pos=(0,0), size=1.5, markerColor='Yellow', noMouse=True, textSize = 0.7, respKeys = ['1','2','3','4','5','6','7','8','9'], minTime=0.0, scale = scales, showAccept = False, labels = label, textColor="White", stretch=1.5)

while timer.getTime() < 4.0:
            if scale.getRating():

The problem is that that number labels don’t show up beneath each tick mark. According to the RatingScale help file, it says that labels can be placed at specific tick marks or at “all points (if given the same number of labels as points).” However, I don’t understand why this doesn’t occur for me.

I understand that I could use choices = ['1','2','3','4','5','6','7,'8,',9'], which puts the numbers beneath each tick mark, but in doing so I’ll instantly break the loop because with the choices component the system is constantly collecting rating and reaction times, even before a key response. I want to be able to break out of the while loop if a button is pressed before the 4 second cutoff.

Is there any way to resolve my issue using labels, or do I need to do something with choices?

Hi dlevitas,
if you just need the numbers to appear in your scale, add tickMarks=label in scale = visual.RatingScale() , that’s it. (By the way I assume you forgot to add the importing: from psychopy import visual, core and to define timer in your example)
In the demos you can find really useful examples on how to set your scale in different ways.
I hope this helped.

Oh wow, I didn’t realize it was that simple. Thanks for the help!