Slider¶

Attributes¶

 Slider(win[, ticks, labels, pos, size, …]) A class for obtaining ratings, e.g., on a 1-to-7 or categorical scale. Get the current value of rating (or None if no response yet) Get the RT for most recent rating (or None if no response yet) Slider.markerPos The position on the scale where the marker should be. Slider.setReadOnly([value, log]) When the rating scale is read only no responses can be made and the scale contrast is reduced Slider.contrast Set all elements of the Slider (labels, ticks, line) to a contrast Slider.style Sets some predefined styles or use these to create your own. Return a list of the subject’s history as (rating, time) tuples. Instructs the rating scale to check for valid mouse responses. Resets the slider to its starting state (so that it can be restarted on each trial with a new stimulus)

Details¶

class psychopy.visual.Slider(win, ticks=(1, 2, 3, 4, 5), labels=None, pos=None, size=None, units=None, flip=False, style='rating', styleTweaks=[], granularity=0, readOnly=False, color='White', fillColor='Red', borderColor='White', colorSpace='rgb', opacity=None, font='Helvetica Bold', depth=0, name=None, labelHeight=None, labelWrapWidth=None, autoDraw=False, autoLog=True)[source]

A class for obtaining ratings, e.g., on a 1-to-7 or categorical scale.

A simpler alternative to RatingScale, to be customised with code rather than with arguments.

A RatingScale instance is a re-usable visual object having a draw() method, with customizable appearance and response options. draw() displays the rating scale, handles the subject’s mouse or key responses, and updates the display. When the subject accepts a selection, .noResponse goes False (i.e., there is a response).

You can call the getRating() method anytime to get a rating, getRT() to get the decision time, or getHistory() to obtain the entire set of (rating, RT) pairs.

For other examples see Coder Demos -> stimuli -> ratingsNew.py.

Authors
• 2018: Jon Peirce

Parameters
• win (psychopy.visual.Window) – Into which the scale will be rendered

• ticks (list or tuple) – A set of values for tick locations. If given a list of numbers then these determine the locations of the ticks (the first and last determine the endpoints and the rest are spaced according to their values between these endpoints.

• labels (a list or tuple) – The text to go with each tick (or spaced evenly across the ticks). If you give 3 labels but 5 tick locations then the end and middle ticks will be given labels. If the labels can’t be distributed across the ticks then an error will be raised. If you want an uneven distribution you should include a list matching the length of ticks but with some values set to None

• pos (XY pair (tuple, array or list)) –

• size (w,h pair (tuple, array or list)) – The size for the scale defines the area taken up by the line and the ticks. This also controls whether the scale is horizontal or vertical.

• units (the units to interpret the pos and size) –

• flip (bool) – By default the labels will be below or left of the line. This puts them above (or right)

• granularity (int or float) – The smallest valid increments for the scale. 0 gives a continuous (e.g. “VAS”) scale. 1 gives a traditional likert scale. Something like 0.1 gives a limited fine-grained scale.

• color – Color of the line/ticks/labels according to the color space

• font (font name) –

• autodraw

• depth

• name

• autoLog

_granularRating(rating)[source]

Handle granularity for the rating

_setLabelLocs()[source]

Calculates the locations of the line, tickLines and labels from the rating info

_setTickLocs()[source]

Calculates the locations of the line, tickLines and labels from the rating info

property borderColor
contrast

Set all elements of the Slider (labels, ticks, line) to a contrast

Parameters

contrast

draw()[source]

Draw the Slider, with all its constituent elements on this frame

property fillColor

Set the fill color for the shape.

property foreColor

Foreground color of the stimulus

Value should be one of:

When color is specified using numbers, it is interpreted with respect to the stimulus’ current colorSpace. If color is given as a single value (scalar) then this will be applied to all 3 channels.

Examples

For whatever stim you have:

stim.color = 'white'
stim.color = 'RoyalBlue'  # (the case is actually ignored)
stim.color = '#DDA0DD'  # DDA0DD is hexadecimal for plum
stim.color = [1.0, -1.0, -1.0]  # if stim.colorSpace='rgb':
# a red color in rgb space
stim.color = [0.0, 45.0, 1.0]  # if stim.colorSpace='dkl':
# DKL space with elev=0, azimuth=45
stim.color = [0, 0, 255]  # if stim.colorSpace='rgb255':
# a blue stimulus using rgb255 space
stim.color = 255  # interpreted as (255, 255, 255)
# which is white in rgb255.


Operations work as normal for all numeric colorSpaces (e.g. ‘rgb’, ‘hsv’ and ‘rgb255’) but not for strings, like named and hex. For example, assuming that colorSpace=’rgb’:

stim.color += [1, 1, 1]  # increment all guns by 1 value
stim.color *= -1  # multiply the color by -1 (which in this
# space inverts the contrast)
stim.color *= [0.5, 0, 1]  # decrease red, remove green, keep blue


You can use setColor if you want to set color and colorSpace in one line. These two are equivalent:

stim.setColor((0, 128, 255), 'rgb255')
# ... is equivalent to
stim.colorSpace = 'rgb255'
stim.color = (0, 128, 255)

getHistory()[source]

Return a list of the subject’s history as (rating, time) tuples.

The history can be retrieved at any time, allowing for continuous ratings to be obtained in real-time. Both numerical and categorical choices are stored automatically in the history.

getMouseResponses()[source]

Instructs the rating scale to check for valid mouse responses.

This is usually done during the draw() method but can be done by the user as well at any point in time. The rating will be returned but will ALSO automatically be set as the current rating response.

While the mouse button is down we will alter self.markerPos but don’t set a value for self.rating until button comes up

Returns

Return type

A rating value or None

getRT()[source]

Get the RT for most recent rating (or None if no response yet)

getRating()[source]

Get the current value of rating (or None if no response yet)

property horiz

(readonly) determines from self.size whether the scale is horizontal

knownStyleTweaks = ['labels45', 'triangleMarker']
knownStyles = ['slider', 'rating', 'radio', 'scrollbar']
legacyStyleTweaks = ['whiteOnBlack']
legacyStyles = []
markerPos

The position on the scale where the marker should be. Note that this does not alter the value of the reported rating, only its visible display. Also note that this position is in scale units, not in coordinates

property opacity
pos

Set position of slider

Parameters

value (tuple, list) – The new position of slider

rating

The most recent rating from the participant or None. Note that the position of the marker can be set using current without looking like a change in the marker position

recordRating(rating, rt=None, log=None)[source]

Sets the current rating value

reset()[source]

Resets the slider to its starting state (so that it can be restarted on each trial with a new stimulus)

setOpacity(value)[source]
setReadOnly(value=True, log=None)[source]

When the rating scale is read only no responses can be made and the scale contrast is reduced

Parameters
• value (bool (True)) – The value to which we should set the readOnly flag

• log (bool or None) – Force the autologging to occur or leave as default

property size

The size for the scale defines the area taken up by the line and the ticks.

style

Sets some predefined styles or use these to create your own.

If you fancy creating and including your own styles that would be great!

Parameters

style (string) –

Known styles currently include:

’rating’: the marker is a circle ‘slider’: looks more like an application slider control ‘whiteOnBlack’: a sort of color-inverse rating scale ‘scrollbar’: looks like a scrollbar for a window

Styles cannot be combined in a list - they are discrete

styleTweaks

Sets some predefined style tweaks or use these to create your own.

If you fancy creating and including your own style tweaks that would be great!

Parameters

styleTweaks (list of strings) –

Known style tweaks currently include:

’triangleMarker’: the marker is a triangle ‘labels45’: the text is rotated by 45 degrees

Legacy style tweaks include:

’whiteOnBlack’: a sort of color-inverse rating scale

Legacy style tweaks will work if set in code, but are not exposed in Builder as they are redundant

Style tweaks can be combined in a list e.g. [‘labels45’]

property value

Synonymous with .rating